Найти тему
Kangaroo

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

Оглавление
Узнал какой паттерн изображен на картинке? Напиши в комментариях о нем
Узнал какой паттерн изображен на картинке? Напиши в комментариях о нем

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

Разберем некоторые из них.

Порождающие.

Singleton (Одиночка) - Используется для создания всего одного экземпляра класса и гарантирует, что во время работы программы не появится второй. Например, в схеме MVC( об этой схеме поговорим очень скоро), зачастую этот паттерн используется для порождения главного контроллера.

Abstract Factory (Абстрактная Фабрика) - Его основное назначение - предоставить интерфейс для создания семейства взаимосвязанных объектов, не специфицируя их классы.

Factory Method (Фабричный Метод) - Используется для определения и поддержания отношений между объектами. Фабричные методы избавляют проектировщика от необходимости встраивать в код зависящие от приложения классы.

Prototype (Прототип) - Используется для задания вида создаваемых объектов на основе объектов прототипа, от которого происходит передача внутреннего состояния. Prototype позволяет избавиться от жесткой привязки к классам и, как следствие вязкости кода.

Builder (Строитель) - Используется для отдаления процесса конструирования сложного объекта от его представления, так что в результате одного и того же конструирования могут получаться различные объекты.

Структурные

Adapter (Адаптер) - Унифицирует классы и объекты. Используется для преобразования одного интерфейса в другой, необходимый клиенту.

Bridge (Мост) - Используется для отделения абстракции от ее реализации так, чтобы то и другое можно было изменять независимо.

Composite (Компоновщик) - Объединяет в древовидную структуру для представления иерархии от частного к целому. Компоновщик позволяет клиентам обращаться к отдельным объектам и группам объектов одинаково. Основным назначением паттерна, является обеспечение единого интерфейса как к составному так и к иному объекту, что бы клиент не задумывался над тем, с каким объектом он работает. Общеизвестным примером этого паттерна является jQuery.

Decorator (Декоратор) - Используется для динамического расширения функционального объекта, является гибкой альтернативой наследованию.

Facade (Фасад) - Определяет интерфейс более высокого уровня, который упрощает использование подсистем. Представляет собой унифицированный интерфейс, вместо набора интерфейсов некоторой подсистемы. Разбиение на подсистемы сложной системы, позволяет упростить процесс проектирования, а также позволяет максимально снизить зависимости одной подсистемы от другой. Однако это приводит к тому, что использовать такие подсистемы вместе становится слишком сложно.

Flyweight (Приспособленец) - Он используется для эффективной поддержки множества мелких объектов и позволяет использовать их повторно в различном контексте.

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

О каком паттерне написать более подробно и детально? Поставь лайк и напиши в комментариях.