Существует множество шаблонов проектирования, которые относятся к обертыванию существующих классов внутри другого класса.

Особенно в последнее время, когда мы включаем тесты в наш проект и продолжаем переводить нашу кодовую базу с Objective-C на Swift, возникают проблемы с нашими исходными классами. Например, мы не можем смоделировать определенные контроллеры представления, мы не можем смоделировать наш сетевой уровень и мы не можем смоделировать любую логику маршрутизации. так что нам делать? Заверните их!

ПОКА разница между шаблоном адаптера и фасадом.

адаптер преобразует один интерфейс в другой, поэтому вы не меняете базовую структуру класса, но расширяете или изменяете способ получения этих данных/свойств/функций.

Фасад упрощает интерфейс — например, группируя ряд классов и функций в более красивый и простой в использовании пакет.

Зачем нам это делать? !

Так как:

  1. Дерьмо случается. Иногда существует зависимость от структуры класса, на которой изначально был построен проект, но тогда класс должен иметь больше функциональных возможностей, чем раньше.
  2. Вы не хотите трогать существующие классы, опасаясь что-нибудь сломать.
  3. Вы хотите инкапсулировать и скрыть то, что происходит в вашем классе.
  4. Вам больше нечего делать. jkjkjk :D
  5. У вас есть новые требования к продукту!

Удачной упаковки и распаковки!