1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/vectorx-NOTE_DesignPatterns

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
设计模式大杂烩.md 7.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 25.04.2025 14:05 c94d87a

[TOC]

Большой салат из паттернов проектирования

1. Концептуальные знания

Конечная цель паттернов проектирования (миропонимание)

  • Высокая внутренняя связность, низкая внешняя связность
  • Легкость расширения, легкость поддержки

Основная идея паттернов проектирования (методология)

  • Композиция и агрегация вместо наследования
  • Программирование к интерфейсу

Гранулярность

  • Гранулярность: степень детализации структуры и функциональности системы, степень разбиения сложных объектов

Как определить "градус"

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

Принцип единственной обязанности

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

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

Роль интерфейса без методов

  • Маркировка

Принципы рефакторинга

  • Абстрактный класс должен иметь как можно больше поведения, и как можно меньше данных### Принцип "Голливуда"

Не звоните нам, мы звоним вам

Не звоните нам, мы звоним вам

Это известный принцип "Голливуда". В Голливуде, после того как вы отправите свое резюме в агентство, вам остается только ждать дома. Агентство полностью контролирует весь процесс развлечений, актеры могут только пассивно выполнять задания, которые им дают, в нужных местах.

Шаблонный метод полностью отражает принцип "Голливуда". Принцип IOC основан на этом принципе, все компоненты являются пассивными, инициализация и вызов всех компонентов осуществляются контейнером.

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

Как реализовать принцип "открытости-закрытости"?

  • Программирование к интерфейсу: также является принципом инверсии зависимостей, использовать больше абстрактных классов и интерфейсов.
  • Упаковка изменяемых частей.

Типичные паттерны проектирования, соответствующие принципам проектирования

  • Принцип единственной обязанности: шаблон состояния.
  • Принцип инверсии зависимостей: шаблон моста.
  • Принцип разделения интерфейса: шаблон мемо.
  • Принцип Лисков: шаблон фасада, шаблон посредника, шаблон команда.## 2. Дополнительные паттерны проектирования

Паттерн прототипа

  • Реализация интерфейса Cloneable, перегрузка метода clone для создания нового объекта не вызывает конструктор класса

Паттерн мемо

  • Белая коробка паттерна мемо : обычная форма, когда есть только один конкретный класс мемо
  • Черная коробка паттерна мемо : определяет узкий интерфейс мемо, конкретная реализация мемо как приватный внутренний класс, и все свойства и методы класса мемо являются приватными и недоступны извне; при этом управляющий класс мемо принимает только узкий интерфейс

Паттерны проектирования для устранения недостатков старых систем

Код старых систем обычно не меняется, поэтому для расширения функциональности таких систем используются следующие паттерны проектирования:

  • Паттерн адаптера
  • Паттерн фасада
  • Паттерн прокси

Паттерны проектирования с двусторонними связями

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

  • Паттерн посредника
  • Паттерн наблюдателя
  • Паттерн посетителя
  • Паттерн состояния

Обязательные паттерны проектирования- Создание объектов: паттерн одиночки, паттерн фабричного метода, паттерн абстрактной фабрики

  • Структурные паттерны: паттерн фасада, паттерн прокси
  • Поведенческие паттерны: паттерн шаблонного метода, паттерн состояния, паттерн стратегии

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/vectorx-NOTE_DesignPatterns.git
git@api.gitlife.ru:oschina-mirror/vectorx-NOTE_DesignPatterns.git
oschina-mirror
vectorx-NOTE_DesignPatterns
vectorx-NOTE_DesignPatterns
main