Дизайн шаблонов vs Frameworks

Может кто-нибудь проиллюстрировать, в чем разница между этими двумя?

Ответы

Ответ 1

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

  • шаблон дизайна решает многие проблемы с архитектурой программного обеспечения (о создании, поведении, concurrency,...) с различным предопределенным дизайном. (дизайн является реализацией темы архитектуры)

  • структура основана на Голливудский принцип ( "Не звоните нам, мы назовите вас" ), где вы выполняете некоторые требования высокого уровня, как указано, и оставляйте фреймворк остальной частью работы, вызывая ваши реализации.

Ключевым отличием является объём охвата:

  • шаблон дизайна имеет плотную область:

    • шаблоны проектирования классов (включает классы)
    • шаблоны бизнес-дизайна (включает бизнес-процессы)
    • шаблоны проектирования приложений (включая приложения)
  • фреймворк имеет большую область:
    Например, .NET - это каркас, состоящий из:

    • язык (С#)
    • среда выполнения (CLR)
    • коллекция библиотек
      Просто разработайте то, что вам нужно, и пусть инфраструктура .NET использует ваши классы.

Ответ 2

Шаблон проектирования - это концепция или квитанция о том, как получить конкретную проблему.

A Framework - это код, готовый к использованию, обычно упакованный таким образом, который облегчает создание приложения.

Не имеет смысла объяснять различия, потому что они две совершенно разные вещи.

Ответ 3

|------------------------|
|          (------)      |
|          (ClassA)      |
|          (------)      |
| (-----------)          |
| ((Singleton))          |
| (-----------)          |
|         (---------)    |     
|         ((Factory))    |
|         (---------)    |
|                        |
|                        |
|------------------------|

Legend:
  |---|  Framework
  (---)  Class
  ()     Design Pattern

Структура представляет собой набор связанных классов для выполнения определенной задачи. Эти классы могут или не могут реализовывать определенный шаблон проектирования.

Ответ 4

Вот GOF ответ:

Поскольку шаблоны и структуры некоторые сходства, люди часто задаются вопросом как и даже если они отличаются. Они есть разные по трем основным направлениям:

  • Шаблоны проектирования более абстрактны чем рамки. Рамки могут быть воплощенные в коде, но только примеры шаблонов могут быть воплощены в коде. Сила рамок состоит в том, что они могут быть записаны в языков программирования и не только изучал, но выполнял и повторно использовал непосредственно. Напротив, дизайн шаблоны в этой книге должны быть каждый раз, когда они используются. Модели проектирования также объясняют намерения, компромиссы и последствия дизайна.

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

  • Шаблоны проектирования менее специализированы чем рамки. Рамки всегда имеют конкретное применение домен. Графическая структура редактора может использоваться в factoryсимуляции, но это не будет ошибкой для имитационной основы. В контрастности, шаблоны проектирования в этот каталог можно использовать почти любое применение. Хотя больше специализированные шаблоны проектирования, чем наши, безусловно, возможны (скажем, шаблоны проектирования для распределенных систем или параллельного программирования), даже это не диктует архитектура приложения, например, рамки.

Ответ 5

Шаблон проектирования - это хорошо разработанный дизайн для решения проблемы. Структура - это реальный пакет кода, который вы используете для упрощения создания приложений для зданий. Обратите внимание, что структура может и, вероятно, будет использовать шаблоны проектирования.

Ответ 6

От Разработка объектно-ориентированного программного обеспечения с использованием Java по Xiaoping Jia:

Хотя оба шаблона проектирования и структуры являются механизмами, используемыми для создания многоразовых проектов, они совершенно разные. С одной стороны, шаблоны проектирования представляют собой схематические описания многоразовых конструкций, которые не являются конкретными программами и не зависят от языка. С другой стороны, фреймворки являются компилируемыми программами, написанными на определенном языке программирования, и часто содержат абстрактные классы и интерфейсы. Шаблоны проектирования - это архитектурные строительные блоки каркасов. Они помогают сделать рамки расширяемыми и многоразовыми. Рамки обычно содержат реализации многих взаимодействующих шаблонов проектирования.

Ответ 7

Шаблон проектирования является стандартным решением известной проблемы (дизайна). Например, шаблон Factory и шаблон Abstract Factory предлагают план для реализации проектов для устранения общих проблем с экземплярами объектов.

С другой стороны, инфраструктура содержит инфраструктуру, которую вы можете использовать и расширить для разработки своего собственного решения. Например, модель 2 "инфраструктура веб-приложений" будет содержать инфраструктуру для создания веб-приложений. Он будет содержать контроллер, некоторые элементы gui и базовые классы, которые мы можем расширить, чтобы создать нашу модель и бизнес-логику. Как правило, он содержит код сантехники и взаимодействия, которые мы наследуем, когда мы расширяем их базовые классы. Некоторые примеры фреймворков - Struts, JSF, Swing Application Framework, JUnit и т.д....

На шаг впереди есть также библиотеки, которые мы используем непосредственно из нашего кода. Обычно без расширения их классов. Log4J будет примером библиотеки.

Ответ 8

Поддержка поддержки шаблонов архитектуры программного обеспечения и дизайна - Захват шаблонов статических и динамических структур и взаимодействие успешного решения проблемы, возникающей при создании приложения в определенном домене

Framework поддерживает повторное использование детального дизайна и кода - Рамка представляет собой интегрированный набор компонентов, которые взаимодействуют для обеспечения многоразовой архитектуры для семейства связанных приложений.

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

Ответ 9

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

Ответ 10

Ответ очень прост: framework: как элементы системы, такие как (компонент, слои, класс,...) должны или должны взаимодействовать друг с другом

шаблон дизайна: решение проблемы с высокой частотой. это может быть преобразование исходного кода MSSQL в oracle,........ и иметь 3 типа: анализ, дизайн и реализация шаблонов.

Ответ 11

Шаблон: набор линий гильдии, архитектура приложения.

Рамка. Чтобы следовать определенному шаблону, задайте классы и библиотеки предварительной сборки для создания шаблона архитектуры.