В чем разница между шаблоном объектов расширения и шаблоном адаптера?
Можете ли вы объяснить мне этот шаблон объекта расширения и чем он отличается от шаблона адаптера?
Кажется, что в сети есть только несколько ресурсов, которые объясняют шаблон расширенных объектов, и большинство из них немного сбивают с толку (по крайней мере, для меня).
Заранее спасибо.
2 ответа
Основное отличие заключается во времени использования:
Вы будете использовать адаптер во время разработки вашего программного обеспечения, в случае, если вы не можете изменить существующий интерфейс, вы вводите адаптер.
Шаблон объекта расширения предусматривает такие изменения и позволяет, например, расширять уже развернутое программное обеспечение.
Кроме того, из текста вы разместили:
Адаптер поддерживает адаптацию существующего интерфейса. Шаблон Extension Objects поддерживает дополнительные интерфейсы. Объекты расширения и адаптер могут работать вместе в ситуациях, когда объект должен быть адаптирован к интерфейсу расширения.
Я думаю, что вы можете получить лучшую идею из этой диаграммы, объясняющей шаблон расширенных объектов.
Вы можете видеть, что клиент может
- Добавить расширение
- Получить (использовать) существующее расширение.
Когда вы сравниваете адаптер, клиент скорее придерживается существующего адаптера.
Вы можете увидеть разные extensions
перечислены на диаграмме как разные adapters
,