[TOC]
Сначала рассмотрим определения каждого паттерна:
Вот таблица, которая подводит итоги их различий:
Паттерн Абстрактная фабрика | Паттерн Построитель | Паттерн Шаблонный метод |
---|---|---|
Создание объектов | Создание объектов | Структура методов |
Создание объектов | Создание сложных объектов | Определение скелета алгоритма |
Создание конкретных продуктов | Процесс создания объектов | Структура алгоритма |
Продукты обычно не связаны | Процессы создания связаны, они служат для создания сложного объекта, который затем собирается в директоре | Алгоритмы связаны, скелет алгоритма определен в базовом классе, конкретные реализации в подклассах |
Сначала рассмотрим определения двух паттернов:
Вот таблица, которая подводит итоги их различий:
Адаптер паттерн | Паттерн моста |
---|---|
Структурный паттерн | Структурный паттерн |
Преобразование одного интерфейса в другой | Разделение реализации и интерфейса, которые могут изменяться независимо |
Наследование базового класса + реализация интерфейса | Композиция интерфейсов |
Сначала рассмотрим определения каждого из этих шаблонов:
Вот таблица, которая суммирует различия между ними:| Фасадный шаблон | Прокси шаблон | Командный шаблон | | :-------------------------------------------- | :---------------------------------------------- | :----------------------------------------------------------- | | Структурный шаблон | ~ | Поведенческий шаблон | | Предоставляет единую высокую интерфейс для группы интерфейсов подсистем | Основное внимание уделяется замене действий, уменьшая количество действий с реальными объектами | Отделение запроса и выполнения | | Через композицию и агрегацию | Через композицию и агрегацию + реализацию интерфейса | Через композицию и агрегацию | | Класс фасада не обязан использовать все методы подсистемы | Класс прокси обязан реализовать все методы подопечного объекта | Командующий объект не обязан использовать все методы объекта-получателя | | Класс фасада может обернуть несколько классов | Класс прокси обрабатывает только один класс | Один командующий объект выполняет только один запрос, один объект-получатель может соответствовать нескольким командующим объектам |
Сначала рассмотрим определения каждого из этих шаблонов:- Шаблон наблюдателя: Определяет одно-ко-многим отношение между объектами так, что когда один объект изменяется, все зависящие от него объекты автоматически обновляются.
Паттерн наблюдателя | Паттерн посредника |
---|---|
Поведенческий паттерн | ~ |
Упорядочивает уведомление | Упорядочивает взаимодействие между коллегами |
Все наблюдатели получают уведомление | Коллеги могут выбирать, с кем взаимодействовать |
Логика обработки находится у отправителя | Логика обработки находится у посредника |
Наблюдатели и наблюдаемые разделены | Взаимодействие коллег разделено |
Сначала рассмотрим определения двух паттернов проектирования:
Сначала рассмотрим определения двух паттернов проектирования:
Паттерн Стратегия | Паттерн Шаблонный метод |
---|---|
Поведенческий паттерн | ~ |
Выбор стратегии определяется внешними факторами | Выбор конкретной реализации определяется внешними факторами |
Определяет серию алгоритмов и упаковывает их, | Определяет скелет алгоритма и откладывает некоторые шаги на |
позволяя им взаимно заменяться и быть независимыми от изменений клиента | реализацию в подклассах |
Использует полиморфизм | Использует наследование |
Ориентирован на решение проблем, связанных с | Ориентирован на решение проблем, связанных с бизнес-процессами |
разнообразием алгоритмов и их влиянием на структуру кода | сложностью и стабильностью бизнес-процессов (общая структура алгоритма не изменяется), при этом некоторые шаги могут изменяться значительно (конкретная реализация некоторых шагов различна) |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )