Base/Knowledges/Библиотека/Книги/Паттерны объектно-ориентированного проектирования.md

3.4 KiB
Raw Blame History

Тип, Статус, Название, Автор, Количество страниц, Прогресс, Формат, Обложка, Начата, Закончена, Оценка, Сложность, Теги, Категории, Источник, Ссылка
Тип Статус Название Автор Количество страниц Прогресс Формат Обложка Начата Закончена Оценка Сложность Теги Категории Источник Ссылка
Книга Заброшена Паттерны объектно-ориентированного проектирования
Эрих Гамма
Ричард Хелм
Ральф Джонсон
Джон Влиссидес
448 Бумажная Библиотека/Книги/covers/gof-patterns.jpg 2024 10 10/10
it
programming
patterns
oop
design-patterns
разработка программного обеспечения
проектирование
https://disk.yandex.ru/i/YpxGgKtb8MMJxA

!covers/gof-patterns.jpg

Паттерны объектно-ориентированного проектирования

📖 О книге

Культовая книга «Банды четырёх» (Gang of Four) — Гамма, Хелм, Джонсон и Влиссидес. Именно она ввела в обиход понятие «паттерн проектирования» применительно к ООП и описала 23 классических паттерна. Книга считается обязательной для каждого программиста, но читается тяжело: академический стиль, примеры на C++ и Smalltalk, высокая плотность концепций. Лучше воспринимается после практического опыта с проектированием.


🧠 Ключевые идеи

  • Паттерн = имя + проблема + решение + последствия: стандартизированный словарь для обсуждения архитектурных решений в команде
  • Три категории: порождающие (Abstract Factory, Builder, Singleton...), структурные (Adapter, Decorator, Proxy...), поведенческие (Observer, Strategy, Command...)
  • Принцип «программировать на интерфейс, а не на реализацию»: зависимости от абстракций делают систему гибкой и расширяемой
  • Предпочитайте композицию наследованию: паттерны вроде Decorator и Strategy показывают, как добавлять поведение без иерархий наследования
  • Открыто/закрытый принцип в действии: хорошо спроектированные паттерны позволяют расширять поведение без изменения существующего кода

💬 Важные цитаты

«Программируйте в расчёте на интерфейс, а не на реализацию.»

«Предпочитайте композицию объектов наследованию классов.»


💡 Как применить в моих проектах


🔗 Связанные заметки