dotSITE
Вопросы/Ответы Учебник по ASP.NET Форумы
новости материалы решения форумы группы настройки/о проекте

Шаблоны проектирования систем. Шаблоны программирования под .NET

В данном каталоге мы постараемся представить читателю информацию о нескольких шаблонах проектирования и разработки объектно-ориентированных систем. В качестве объектно-ориентированной платформы, на которой будут работать примеры мы возьмем .NET, а в качестве языка примеров выберем новый язык C#, который нам подходит. Причина выбора платформы: На наш взгляд, .NET - одна из лучших, представленных сейчас платформ, для написания приложений с использованием объектно-ориентированных технологий, и при этом при написании кода для данной платформы Вы вольны использовать один из большого количества языков, работающих под CLR (Common Language Runtime, общеязыковая среда выполнения). Причина выбора языка: Не будем углубляться в историю C# в частности и языков программирования в общем - она описана на портале http://www.dotsite.spb.ru, но можем сказать, что сейчас C# - язык, оптимально дополняющий технологию .NET

Паттерны (patterns, шаблоны) представляют из себя консистенцию некоего опыта, пригодную для повторного использования. Паттерны находят применение во всех областях деятельности, поскольку позволяют использовать сработавшие ранее решения. Мы с вами не будем рассматривать паттерны психологии или кулинарные рецепты (пример паттернов), а сделаем небольшой обзор паттернов проектирования программных систем. Знание паттернов проектирования позволяет не только быстрее строить Ваши решения и получать качественный исходный код, но и проще общаться с Вашими коллегами, которые уже освоили данную технологию. В команде dotSITE, например, знание базовых шаблонов проектирования считается обязательным.

Abstract Factory

Абстракстная фабрика - паттерн, позволяющий изменять поведение системы, варьируя создаваемые объекты, при этом сохраняя интерфейсы

Adapter

Adapter - паттерн, позволяющий преобразовать интерфейс объекта к тому, который требует клиент.

Builder

Builder - паттерн, позволяющий абстрагировать процесс создания комплексных систем, путем выделения и обобщения классов, отвечающих за создание частей.

Bridge

Bridge - паттерн, позволяющий отделить интерфейс от реализации и изменять их независимо.

Command

Command - паттерн, инкапсулирующий запрос как объект, позволяя более гибко работать с запросами (параметризовать, архивировать, наделять поведением)

Decorator

Decorator - паттерн, позволяющий динамически добавлять обязанности объекту, путум включения его в "конверт", обладающий совместимым интерфейсом

Facade

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

Flyweight

Паттерн flyweight применяется, когда нужно поддерживать множество мелких объектов, в котором можно выделить группы схожих.

Interpreter

Паттерин interpreter используется для создания интерпретаторов языков, для которых задана грамматика

Iterator

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

Mediator

Паттерн mediator обеспечивает создание "посредника" во взаимодействии объектов, тем самым обеспечивая слабое связывание.

Memento

Memento - паттерн, реализующий механизм сохранения внутреннего состояния класса с возможностью последующего восстановления.

Observer

Observer - паттерн, позволяющий создавать объекты, зависимые от данного и которые получают извещения при каждой смене состояния первичного объекта.

Prototype

Позволяет создавать новые объекты за счет клонирования специального объекта - прототипа

Proxy

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

Singleton

Позволяет классу контролировать существование только одного экземпляра и обеспечивает доступ к нему.

State

State позволяет задавать поведение объекта "на лету".

Strategy

Strategy инкапсулирует алгоритм как объект, позволяя заменять один на другой.

Template Method

Реализует скелет алгоритма, в котором некоторые шаги делегируются подклассам.

Visitor

Позволяет описать операцию, производимую над элементами некоторой структуры, позволяет добавлять новые операции, не изменяя класс структуры.




Мы представили Вам краткий обзор - дополнительную информацию можно найти в книге "Design Patterns", написанной By Gamma, Helm, Johnson, и Vlissides (Addison Wesley, 1995).
Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2010 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development