В чем разница между шаблоном объектов расширения и шаблоном адаптера?

Можете ли вы объяснить мне этот шаблон объекта расширения и чем он отличается от шаблона адаптера?

Кажется, что в сети есть только несколько ресурсов, которые объясняют шаблон расширенных объектов, и большинство из них немного сбивают с толку (по крайней мере, для меня).

Заранее спасибо.

2 ответа

Решение

Основное отличие заключается во времени использования:

Вы будете использовать адаптер во время разработки вашего программного обеспечения, в случае, если вы не можете изменить существующий интерфейс, вы вводите адаптер.

Шаблон объекта расширения предусматривает такие изменения и позволяет, например, расширять уже развернутое программное обеспечение.

Кроме того, из текста вы разместили:

Адаптер поддерживает адаптацию существующего интерфейса. Шаблон Extension Objects поддерживает дополнительные интерфейсы. Объекты расширения и адаптер могут работать вместе в ситуациях, когда объект должен быть адаптирован к интерфейсу расширения.

Я думаю, что вы можете получить лучшую идею из этой диаграммы, объясняющей шаблон расширенных объектов.

Вы можете видеть, что клиент может

  • Добавить расширение
  • Получить (использовать) существующее расширение.

Когда вы сравниваете адаптер, клиент скорее придерживается существующего адаптера.

Вы можете увидеть разные extensions перечислены на диаграмме как разные adapters,

Другие вопросы по тегам