Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП / ООП / ры_приложений_полная_книга.pdf
Скачиваний:
500
Добавлен:
18.02.2017
Размер:
7.08 Mб
Скачать

Шаблоны проектирования

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

Категория

Шаблоны

 

 

Кэширование

Cache Dependency (Кэш с зависимостью). Использует внешние данные

 

для определения состояния данных, хранящихся в кэше.

 

Page Cache (Кэш страниц). Улучшает время ответа динамических Веб-

 

страниц, доступ к которым осуществляется довольно часто, но сами они

 

меняются реже и потребляют большое количество ресурсов системы для

 

воссоздания.

 

 

Композиция и компоновка

Composite View (Составное представление). Сочетает отдельные

 

представления в композитное представление.

 

Шаблон Presentation Model (Model-View-ViewModel). Разновидность

 

шаблона Model-View-Controller (MVC), приспособленная для

 

современных платформ разработки UI, на которых созданием

 

представления (View) занимаются, главным образом, дизайнеры, а не

 

обычные разработчики.

 

Template View (Представление по шаблону). Реализует представление

 

общего шаблона и создает представления на базе этого шаблонного

 

представления.

 

Transform View (Представление с преобразованием). Преобразует

 

данные, переданные на уровень представления, в HTML для

 

отображения в UI.

 

Two-Step View (Двухэтапное представление). Преобразует модель

 

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

 

форматирования и затем преобразует это логическое представление,

 

добавляя необходимое форматирование.

 

 

Управление

Exception Shielding (Экранирование исключений). При возникновении

исключениями

исключения предотвращает предоставление сервисом данных о его

 

внутренней реализации.

 

 

Навигация

Application Controller (Контроллер приложений). Единое место

 

обработки навигации между окнами.

 

Front Controller (Контроллер запросов). Шаблон только для Веб,

 

консолидирующий обработку запросов путем направления всех запросов

 

через один объект-обработчик, который можно изменять во время

 

выполнения с помощью декораторов.

 

Page Controller (Контроллер страниц). Принимает ввод из запроса и

 

обрабатывает его для конкретной страницы или действия Веб-сайта.

 

Command (Команда). Инкапсулирует обработку запроса в отдельный

 

командный объект с обычным интерфейсом выполнения.

 

 

Взаимодействие с

Asynchronous Callback (Асинхронный обратный вызов). Выполняет

пользователем

длительные задачи в отдельном потоке, выполняющемся в фоновом

 

режиме, и обеспечивает потоку функцию для обратного вызова по

 

завершении выполнения задачи.

 

Chain of Responsibility (Цепочка обязанностей). Предоставляя

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

Более подробно шаблон Page Cache рассматривается в статье «Enterprise Solution Patterns Using Microsoft .NET» (Шаблоны корпоративных решений для Microsoft .NET) по адресу http://msdn.microsoft.com/en-us/library/ms998469.aspx.

Более подробно шаблоны Application Controller, Front Controller, Page Controller, Template View, Transform View и Two-Step View рассматриваются в книге Мартина Фаулера «Архитектура корпоративных приложений». Addison-Wesley, 2002. Или по адресу http://martinfowler.com/eaaCatalog.

Более подробно шаблоны Composite View и Presentation Model рассматриваются в статье

«Patterns in the Composite Application Library» (Шаблоны в библиотеке составного приложения)

по адресу http://msdn.microsoft.com/en-us/library/dd458924.aspx.

Более подробно шаблон Chain of Responsibility рассматривается в статье «Patterns in Practice»

(Шаблоны на практике) по адресу http://msdn.microsoft.com/en-us/magazine/cc546578.aspx.

Шаблону Command посвящена глава 5, «Поведенческие шаблоны», в книге Эрика Гамма, Ричарда Хелма, Ральфа Джонсона и Джона Влиссидеса «Приемы объектно-

ориентированного проектирования. Паттерны проектирования». Питер, 2007.

Более подробно шаблон Asynchronous Callback рассматривается в статье «Creating a Simplified Asynchronous Call Pattern for Windows Forms Applications» (Создание упрощенного шаблона асинхронных вызовов для приложений Windows Forms) по адресу http://msdn.microsoft.com/en-us/library/ms996483.aspx.

Более подробно шаблоны Exception Shielding и Entity Translator рассматриваются в статье «Useful Patterns for Services» (Полезные шаблоны для сервисов) по адресу http://msdn.microsoft.com/en-us/library/cc304800.aspx.

Предложения patterns & practices

Узнать о дополнительных предложениях группы Microsoft patterns & practices можно из следующих источников:

«Composite Client Application Guidance» по адресу http://msdn.microsoft.com/enus/library/cc707819.aspx.

«Smart Client Software Factory» по адресу http://msdn.microsoft.com/enus/library/aa480482.aspx.

«Web Client Software Factory» по адресу http://msdn.microsoft.com/enus/library/bb264518.aspx.

Дополнительные источники

Электронная версия списка используемых источников доступна по адресу http://www.microsoft.com/architectureguide.

«Choosing the Right Presentation Layer Architecture» (Как правильно выбрать архитектуру слоя представления) по адресу http://msdn.microsoft.com/enus/library/aa480039.aspx.

Распределенная система кэширования объектов в памяти «memcached» по адресу http://www.danga.com/memcached/.

«Microsoft Inductive User Interface Guidelines» (Руководство по Microsoft Inductive User Interface) по адресу http://msdn.microsoft.com/en-us/library/ms997506.aspx.

«Microsoft Project Code Named ‘Velocity’» (Проект Microsoft под кодовым названием

‘Velocity’) по адресу http://msdn.microsoft.com/en-us/data/cc655792.aspx.

«User Interface Text Guidelines» (Руководство по проектированию текстовой части пользовательского интерфейса) по адресу http://msdn.microsoft.com/enus/library/bb158574.aspx.

«Design and Implementation Guidelines for Web Clients» (Руководство по проектированию и реализации Веб-клиентов) по адресу http://msdn.microsoft.com/en-us/library/ms978631.aspx.

«Web Presentation Patterns» (Шаблоны представления в Веб) по адресу http://msdn.microsoft.com/en-us/library/ms998516.aspx.

7

Рекомендации по проектированию бизнес-слоя

Обзор

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

Рис. 8

Бизнес-слой в типовом приложении и компоненты, которые он может включать

Бизнес-слой обычно включает следующие компоненты:

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

Компоненты бизнес-логики. Бизнес-логика, как и любая логика приложения, занимается вопросами извлечения, обработки, преобразования и управления данными приложения; применением бизнес-правил и политик и обеспечением непротиворечивости и действительности данных. Чтобы создать наилучшие условия для повторного использования, компоненты бизнес-логики не должны содержать поведения или логики приложения конкретного варианта использования или пользовательской истории. Компоненты бизнес-логики можно подразделить на две категории:

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

Компоненты бизнес-сущностей. Бизнес-сущности, или более общее название – бизнес-объекты, инкапсулируют бизнес-логику и данные, необходимые для представления в приложении объектов реального мира, таких как заказчики (Customers) или заказы (Orders). Они хранят значения данных и предоставляют их через свойства; содержат бизнес-данные приложения и управляют ими; и предоставляют программный доступ с сохранением состояния к бизнесданным и связанной функциональности. Бизнес-сущности также проверяют данные, содержащиеся в сущности; они инкапсулируют бизнес-логику для обеспечения непротиворечивости данных, а также реализации бизнес-правил и поведения. Более подробно компоненты бизнес-сущностей рассматриваются в главе 13, «Проектирование бизнес-сущностей».

Подробно компоненты, обычно используемые в бизнес-слое, рассматриваются в главе 10, «Рекомендации по проектированию компонентов».

Проектированию компонентов бизнес-слоя посвящена глава 12, «Проектирование компонентов бизнес-слоя».

Соседние файлы в папке ООП