Skip to content

Latest commit

 

History

History
75 lines (74 loc) · 5.52 KB

Design patterns [Rus].md

File metadata and controls

75 lines (74 loc) · 5.52 KB

==================================================================================================== Design Patterns Russian version.

Принципы проектирования

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

Паттерны для повторного использования на уровне библиотеки:

Паттерны поведения.

Глава 1 - Стратегия (Strategy)

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

  • Паттерн "Стратегия" не определяет, как получены входные данные. Эти данные могут передаваться в аргументах метода AlgoritmInterface, если стратегия может получить ссылку на сам контекст и получать требуемые данные самостоятельно.
  • Паттерн "Стратегия" не определяет, каким образом контекст получает экземпляр стратегии. Контекст может получать её в аргументах конструктора, через метод, свойство или у третьей стороны.

Глава 2 - Шаблонный метод (Template Method)


Глава 3 - Посредник (Mediator)


Глава 4 - Итератор (Iterator)


Глава 5 - Наблюдатель (Observer)


Глава 6 - Посетитель (Visitor)


Глава 7 - Другие паттерны поведения


Порождающие паттерны.

Глава 8 - Синглтон (Singleton)

.NET 4.0+:

  • Lazy .NET 3.5-:
  • No exceptions & no Lazy (Без исключений и без ленивости) - Field initializer (Инициализатор статического поля)
  • Other (другие случаи) - Double check lock (Блокировка с двойной проверкой) Ambient Context - конфигурируемый синглтон. Применимость:
  1. Синглтон без видимого состояния. Утилиты, справка.
  2. Настраиваемый контекст. Зависимости типа Ambient Context, в качестве теста.
  3. Минимальная область использования.
  4. Явное использование синглтона.

Глава 9 - Абстрактная фабрика (Abstract Factory)

Интерфейс для создания семейства взаимосвязанных или родственных объектов (depend or related objects), не специфируя их конкретных классов.

Глава 10 - Фабричный метод (Factory Method)


Глава 11 - Строитель (Builder)


Структурные паттерны