Метки статьи ‘ ООП ’

Прокси (Proxy)

31/01/2012
от
Прокси (Proxy)

Прокси (Proxy, Заместитель) относиться к классу структурных паттернов. Является суррогатом другого объекта и контролирует доступ к нему. Наиболее частым применением паттерна прокси является ленивая загрузка (lazy load). «Тяжелые» объекты не всегда разумно загружать в момент инициализации. Более правильным решением будет загрузить его по первому требованию. Давайте рассмотрим это на примере некой обертки для удаленных (расположенных...
Далее »

Метки:, , , , ,
Опубликовано в рубрике Структурные, Шаблоны проектирования | Комментариев нет »

Приспособленец (Flyweight)

31/01/2012
от
Приспособленец (Flyweight)

Приспособленец (Flyweight) относиться к классу структурных паттернов. Он используется для эффективной поддержки множества мелких объектов. В некоторых приложения использование множества мелких объектов могло бы оказаться весьма полезным, однако прямая реализация ведет к чудовищному перерасходу ресурсов. Попробую объяснить это на примере интернет магазина, в котором мы будем продавать крутые дизайнерские подушки. С покупателями у нас не возникает проблем...
Далее »

Метки:, , , , ,
Опубликовано в рубрике Структурные, Шаблоны проектирования | Комментариев нет »

Фасад (Facade)

31/01/2012
от
Фасад (Facade)

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

Метки:, , , , ,
Опубликовано в рубрике Структурные, Шаблоны проектирования | Комментариев нет »

Декоратор (Decorator)

31/01/2012
от
Декоратор (Decorator)

Decorator (Декоратор) относиться к классу структурных паттернов. Он используется для динамического расширения функциональности объекта. Является гибкой альтернативой наследованию. Сущность работы паттерна декоратор заключается в «оборачивании» готового объекта новым функционалом, при этом весь оригинальный интерфейс объекта остается доступным (декоратор переадресует все запросы объекту). Смысл заключается в том, чтобы можно было безболезненно комбинировать различные декораторы в произвольном...
Далее »

Метки:, , , , ,
Опубликовано в рубрике Структурные, Шаблоны проектирования | Комментариев нет »

Компоновщик (Composite)

31/01/2012
от
Компоновщик (Composite)

Composite (Компоновщик) относиться к классу структурных паттернов. Он используется для компоновки объектов в древовидные структуры для представления иерархий, позволяя одинаково трактовать индивидуальные и составные объекты. Ниже на рисунке представлена типичная древовидная структура: Как можно догадаться, composite это составной объект, а leaf это конечный потомок дерева (лист), у которого не может быть потомков. Примером такой структуры может...
Далее »

Метки:, , , , ,
Опубликовано в рубрике Структурные, Шаблоны проектирования | Комментариев нет »

Bridge (Мост)

31/01/2012
от
Bridge (Мост)

Bridge (Мост) относиться к классу структурных паттернов. Он используется для отделения абстракции от ее реализации так, чтобы то и другое можно было изменять независимо. Если для одной абстракции возможно несколько несколько реализаций, то обычно используют наследование. Однако такой подход не всегда удобен, так как наследование жестко привязывает реализацию к абстракции, что затрудняет независимую модификацию и усложняет...
Далее »

Метки:, , , , ,
Опубликовано в рубрике Структурные, Шаблоны проектирования | Комментариев нет »

Adapter (Адаптер)

31/01/2012
от
Adapter (Адаптер)

Adapter (Адаптер) относиться к классу структурных паттернов. Он используется для преобразования одного интерфейса в другой, необходимый клиенту. Адаптер обеспечивает совместимость несовместимых интерфейсов, реализуя прослойку. Принцип работы Адаптер наследует открытым способом целевой интерфейс (назовем его Target), и закрытым способом адаптируемый интерфейс (Adaptee). В реализации методов целевого интерфейса происходит перенаправление (делегирование) запросов классу с адаптируемым интерфейсом Пример Заключение Адаптер...
Далее »

Метки:, , , , ,
Опубликовано в рубрике Структурные, Шаблоны проектирования | Комментариев нет »

Builder (Строитель)

31/01/2012
от
Builder (Строитель)

Builder (Строитель) относится к классу порождающих паттернов. Он используется для отделения процесса конструирования сложного объекта от его представления, так что в результате одного и того же конструирования могут получаться различные объекты. Пример Вернемся к нашему примеру с игрой. Предположим нам нужно получить объект «казармы», который различен для каждой расы. Причем различия настолько велики, что мы не можем использовать...
Далее »

Метки:, , , , ,
Опубликовано в рубрике Порождающие, Шаблоны проектирования | Комментариев нет »

Prototype (Прототип)

31/01/2012
от
Prototype (Прототип)

Prototype (Прототип) относиться к классу порождающих паттернов. Он используется для задания вида создаваемых объектов на основе объекта прототипа, от которого происходит передача внутреннего состояния. Он сродни фабричному методу, позволяет избавиться от жесткой привязки к классам, и, как следствие, вязкости кода. Существует множество реализаций данного паттерна, я приведу три основных: В первом методе в конструктор поступает объект...
Далее »

Метки:, , , , ,
Опубликовано в рубрике Порождающие, Шаблоны проектирования | Комментариев нет »

Singleton (Одиночка)

31/01/2012
от
Singleton (Одиночка)

Singleton (Синглтон, одиночка) относиться к классу порождающих паттернов. Он используется для создания всего одного экземпляра класса, и гарантирует, что во время работы программы не появиться второй. Например в схеме MVC, зачастую этот паттерн используется для порождения главного контроллера (фронтового) Суть паттерна Пример При первом обращение к функции getInstance будет создан объект, который, впоследствии, будет всем отдаваться. Так...
Далее »

Метки:, , , , ,
Опубликовано в рубрике Порождающие, Шаблоны проектирования | Комментариев нет »

Factory Method (Фабричный метод)

31/01/2012
от
Factory Method (Фабричный метод)

Перед прочтением ознакомьтесь с введением в паттерны проектирования. Factory Method относиться к классу порождающих паттернов. Они используются для определения и поддержания отношений между объектами. Фабричные методы избавляют проектировщика от необходимости встраивать в код зависящие от приложения классы. Пример Предположим мы создаем некий XML парсер, который анализирует предоставленный файл и преобразует его в DOM дерево. Каждый...
Далее »

Метки:, , , , ,
Опубликовано в рубрике Порождающие, Шаблоны проектирования | Комментариев нет »

Шаблоны проектирования (design patterns)

31/01/2012
от

Шаблон проектирования (design pattern) — это общее типовое решение некоторой проблемы, многократно повторяемое в процессе проектирования архитектуры программного продукта. Они показывают отношения и взаимодействия между классами, позволяют сделать систему гибкой и легко изменяемой. За счет их правильного использования повышается коэффициент использования готовых решений. Предполагается, что читатель осведомлен о понятиях ООП и знает в чем разница между интерфейсом...
Далее »

Метки:, , ,
Опубликовано в рубрике Паттерны поведения, Порождающие, Программирование, Структурные, Шаблоны проектирования | Комментариев нет »