Применение шаблона Controller

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

Согласно шаблону Создатель класс TController должен создавать и уничтожать объекты слоя бизнес-логики. Поэтому необходимо в этом классе создать поля представленные в таблице 7.1.

 

Таблица 7.1

Поля класса TController

Название Описание
fStudents: TStudents Класс по работе со студентами
fBooks: TBook; Класс по работе с книгами
fStudentBook: TStudentBook Класс, выдающий и забирающий книги у студентов

 

Эти классы имеют высокое зацепление согласно шаблону High Cohesion поскольку каждый класс работает только с одним объектом в БД.

Для обработки входных системных событий необходимо создать методы, каждый из которых будет обрабатывать только одно системное событие (см. Таблица 7.2).

Таблица 7.2

Методы класса TController

Название Описание
AddStudent (num: integer; family,name,secondname,group: string) Метод добавляет студента
AddBook (Author,Name: string) Метод добавляет книгу
AddStudentBook Метод выдает книгу студенту
UpdateStudent (num: integer; family,name,secondname,group: string) Метод изменяет выбранного студента
UpdateBook (Author,Name: string) Метод изменяет выбранную книгу
DeleteStudent Метод удаляет выбранного студента
DeleteBook Метод удаляет выбранную книгу
DeleteStudentBook Метод возвращает книгу от студента
StudentParams: tParams Функция возвращает параметры текущего студента
BookParams: tParams Функция возвращает параметры текущей книги
GroupList: TStringList Функция возвращает список групп студентов
StudentsAfterScroll(DataSet: TDataSet) Событие происходящее при перемещении по набору данных отображающих студентов

 

Для обеспечения отображения данных необходимо создать свойства возвращающие ссылки на источники наборов данных (Таблица 7.3).

Таблица 7.3

Свойства TController

Название Описание
StudentDataSource: TDataSource Источник данных набора отображающих студентов
BookDataSource: TDataSource Источник данных набора отображающих книги
StudentBookDataSource: TDataSource Источник данных отображающий выданные книги

 

В результате диаграмма класса примет следующий вид (см. Рисунок 7.2).

Рисунок 7.2 – Диаграмма классов слоя бизнес-логики

Задание

Нужно разработать приложение в Borland Developer Studio в соответствии с тематикой курсового проекта по предмету «Технологи разработки программного обеспечения». Приложение должно работать с реляционной СУБД, например FireBird, а его архитектура соответствовать трехслойной архитектуре на базе объектно-реляционного отображения с не типизированными объектами. При разработке приложения необходимо применить шаблоны проектирования.

Контрольные вопросы

1) Понятие шаблон проектирования.

2) Структура шаблона проектирования.

3) Разработка классов на основе шаблонов проектирования.

4) Шаблон проектирования Information Expert.

5) Шаблон проектирования Creator.

6) Шаблон проектирования Low Coupling.

7) Шаблон проектирования High Cohesion.

8) Шаблон проектирования Controller.

9) Чем отличается архитектура с типизированными объектами от архитектуры с не типизированными объектами?