Использование абстрактной фабрики при разработке взаимозаменяемых систем

Автор: Баранов С.В., Рожков С.А.

Журнал: Форум молодых ученых @forum-nauka

Статья в выпуске: 6 (46), 2020 года.

Бесплатный доступ

В данной статье рассматривается шаблон проектирования абстрактная фабрика. Рассматривается пример её применения, а также случаи её применения и недостатки.

Абстрактная фабрика, программное обеспечение, шаблон, разработка, система

Короткий адрес: https://sciup.org/140288012

IDR: 140288012

Текст научной статьи Использование абстрактной фабрики при разработке взаимозаменяемых систем

master’s student

2 course, faculty «Information and control systems» Rozhkov S. A. master's student

2 course, faculty «Information and control systems» BSTU "VOENMEH" named after. D. F. Ustinov Russia, St. Petersburg

USE OF ABSTRACT FACTORY IN DEVELOPMENT OF INTERCHANGEABLE SYSTEMS

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

Абстрактная фабрика предоставляет интерфейс для создания семейств взаимосвязанных объектов с определенными интерфейсами без указания конкретных типов данных объектов. Для примера рассмотрим структурную схему абстрактной фабрики для создания некоторой системы, представленную на рисунке ниже.

Рисунок 1 - Структурная схема абстрактной фабрики

Как видно из схемы система состоит из трех структурных элементов:

  • -    Controller – отвечает за работу со всеми элементами управления системы, например, различными кнопками и переключателями;

  • -    GraphicArea – отвечает за графическую составляющую системы, например, построение графиков или отрисовка любой другой информации;

  • -    Configuration – отвечает за загрузку всех параметров системы, включая стартовые положения окон, цветовые схемы и прочее.

В общем случае в системах управление GraphicArea происходит через Controller. Настройки Controller и GraphicArea зависят от Configuration. Все элементы взаимосвязаны.

Абстрактные классы Controller, GraphicArea и Configuration определяют интерфейс для классов, объекты которых будут создаваться в программе. Конкретные классы ControllerSystemaA / ControllerSystemaB, SystemaAGraphicArea / SystemaBGraphicArea и SystemaAConfiguration / SystemaBConfiguration представляют конкретную реализацию абстрактных классов.

Абстрактный класс фабрики Factory определяет методы для создания объектов. Причем методы возвращают абстрактные продукты, а не их конкретные реализации. Конкретные классы фабрик SystemAFactory и SystemBFactory реализуют абстрактные методы базового класса и непосредственно определяют какие конкретные продукты использовать.

Класс Application использует класс фабрики для создания объектов. При этом он использует исключительно абстрактный класс фабрики Factory и абстрактные классы продуктов Controller, GraphicArea и Configuration и никак не зависит от их конкретных реализаций.

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

Таким образом, создание системы абстрагируется от самого класса системы или её составляющих. В то же время нельзя не отметить и недостатки шаблона. В частности, если нам захочется добавить в систему новый объект, то придется переделывать классы фабрик. Поэтому возможности по расширению в данном шаблоне имеют некоторые ограничения.

Список литературы Использование абстрактной фабрики при разработке взаимозаменяемых систем

  • Гамма Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. - СПб.: Питер, 2015. - 368 с
Статья научная