logo
Учебное пособие по циклу лабораторных работ Технологии разработки программного обеспечения

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

Шаблон Creatorотвечает на вопрос, кто должен создавать экземпляр нового объекта. Класс должен создавать экземпляр нового объекта, если выполняется одно или несколько условий:

В качестве примера возьмем базовый класс для слоя бизнес-логики класс TDataPrepare. Наследники этого класса должны обращаться к классу слоя объектно-реляционного отображенияTExecuteObjectдля выполненияSQLзапросов. Существуют два вида запросов: возвращающие данные и не возвращающие данные. Запросы, возвращающие данные используются для отображения одного или несколько объектов из реляционной таблицы. Запросы, не возвращающие данные используются для модификации данных в реляционных таблицах. Таким образом, у нас есть проблема, кто должен создавать объект классаTExecuteObject. Поскольку разные объекты отображают данные из различных таблиц БД, то получается, что каждому объекту классаTDataPrepareнеобходимо иметь по одному экземпляру объектаTExecuteObject. Но тут появляется другая проблема при выполнении запросов, не возвращающих данные текущий набор данных закрывается и при попытке другого запроса текущий набор данных закроется и его необходимо будет заново открыть, что увеличит объем данных передаваемых по сети. Тогда ответим на другой вопрос: «Кто должен отвечать за создание и удаления объекта выполняющего такие запросы»? Существуют два варианта: классTDataPrepareили другой – новый класс. Решение данной проблемы зависит от того, могут ли быть отправлены одновременно два и более таких запросов. Если да то тогда необходимо чтобы этот объект создавал классTDataPrepare, если нет, то тогда необходимо создать новый класс, обладающий такой функциональностью.