Skip to content

Примеры реализации паттернов на Java

Notifications You must be signed in to change notification settings

kembrick/DesignPatterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Примеры реализации шаблонов проектирования на Java

Приведен исходный код с объяснением работы и UML-диаграммами наиболее популярных паттернов.

  • Поведенческие
    • Цепочка ответственности (Chain of Responsibility)
    • Команда (Command)
    • Состояние (State)
    • Стратегия (Strategy)
    • Посетитель (Visitor)
  • Порождающие
    • Абстрактная фабрика (Abstract Factory);
    • Строитель (Builder);
    • Фабрика (Factory Method);
  • Структурные
    • Декоратор (Decorator)

Код не является 100% оригинальным, скорее, это адаптация разрозненных учебных материалов. Были взяты наиболее удачные примеры с точки зрения автора - лаконичные и понятные.

Источники вдохновения:

Общая теория

Паттерны проектирования (шаблоны проектирования) ‒ это готовые к использованию решения часто возникающих в программировании задач. Это не класс и не библиотека, которую можно подключить к проекту, это нечто большее.

Паттерн проектирования, подходящий под задачу, реализуется в каждом конкретном случае.

Преимущества паттернов проектирования

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

Недостатки паттернов проектирования

  • Использование паттернов ради паттернов, наоборот, усложняет код и запутывает разработчиков.
  • Неправильное применение того или иного шаблона способно сделать программу менее эффективной.
  • Паттерны неуниверсальны: в одной задаче конкретный паттерн подойдет, в другой нет.
  • На ранних этапах изучения бывает сложно выбрать подходящий для конкретной проблемы паттерн.
  • Из-за сильной связи с объектно-ориентированным программированием использование паттернов в других парадигмах ограничено. Хотя, например, в функциональном программировании они могут применяться — просто реализуются иначе.

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

  • Порождающие. Такие шаблоны нужны, чтобы оптимизировать создание того или иного объекта. Порождающие паттерны помогают создавать объекты так, чтобы они эффективно общались с другими, и управлять их работой. Примеры: Фабрика, Прототип, Строитель, Одиночка.
  • Структурные. Если порождающие паттерны отвечают за создание и взаимодействие объектов, то структурные ‒ за то, как эти объекты структурированы в коде. Они описывают, каким образом простые классы и объекты «собираются» в более сложные. Примеры: Декоратор, Мост, Фасад.
  • Поведенческие. Это паттерны проектирования, которые описывают, как объекты себя ведут и взаимодействуют с другими. Их используют, например, для разделения обязанностей между разными сущностями или для реагирования на изменения без ошибок. Примеры: Итератор, Наблюдатель, Цепочка ответственности.

About

Примеры реализации паттернов на Java

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages