Существует множество шаблонов проектирования, которые относятся к обертыванию существующих классов внутри другого класса.
Особенно в последнее время, когда мы включаем тесты в наш проект и продолжаем переводить нашу кодовую базу с Objective-C на Swift, возникают проблемы с нашими исходными классами. Например, мы не можем смоделировать определенные контроллеры представления, мы не можем смоделировать наш сетевой уровень и мы не можем смоделировать любую логику маршрутизации. так что нам делать? Заверните их!
ПОКА разница между шаблоном адаптера и фасадом.
адаптер преобразует один интерфейс в другой, поэтому вы не меняете базовую структуру класса, но расширяете или изменяете способ получения этих данных/свойств/функций.
Фасад упрощает интерфейс — например, группируя ряд классов и функций в более красивый и простой в использовании пакет.
Зачем нам это делать? !
Так как:
- Дерьмо случается. Иногда существует зависимость от структуры класса, на которой изначально был построен проект, но тогда класс должен иметь больше функциональных возможностей, чем раньше.
- Вы не хотите трогать существующие классы, опасаясь что-нибудь сломать.
- Вы хотите инкапсулировать и скрыть то, что происходит в вашем классе.
- Вам больше нечего делать. jkjkjk :D
- У вас есть новые требования к продукту!
Удачной упаковки и распаковки!