Skip to content

Latest commit

 

History

History
103 lines (76 loc) · 5.83 KB

File metadata and controls

103 lines (76 loc) · 5.83 KB

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

(НЕ ЗАКОНЫ)

  • Изменяемые аспекты приложения должны быть отделенны от постоянных;

  • Программировать на уровне интерфейсов, а не на уровне реализаций;

  • Композиция* лучше наследования;

  • Стремиться к слабой связанности* взаимодействующих объектов;

    • Выделять уровень абстракции, чтобы работать с супер типом (Полиморфизм)
  • Используйте только одну точку. (Class.method())Принцип минимальной информированности;

Solid

Ключевые принципы

  • Don’t repeat yourself - DRY;

  • Keep it simple stupid - KISS;

  • You ain’t gonna need it - YAGNI;

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

Порождающие: удобное и безопасное создание новых объектов Структурные: построение удобных в поддержке иерархий классов Поведенческие: эффективного и безопасного взаимодействия между объектами программы
Фабричный метод Адаптер Цепочка обязанностей
Абстрактная фабрика Мост Команда
Строитель Компоновщик Итератор
Пул объектов Декоратор Посредник
Прототип Фасад Снимок
Одиночка Легковес Наблюдатель
Заместитель Состояние
Выделение частного класса данных Стратегия
Шаблонный метод
Посетитель
Null объект

Catalog of Patterns of Enterprise Application Architecture