PHP шаблоны: Abstract Factory (генерация объектов)

PHPКомментариев нет

Проблема:

Генерация связанных наборов классов которые реализуют единый интерфейс. На примере реализуем парсер разных форматов.

Решение:

[file: Parser.php] — интерфейс для парсера

[file: CsvParser.php] — класс парсер csv файлов

[file: JsonParser.php] — класс парсер json

[file: ParserFactory.php] — фабрика для генерации классов реализации парсера

Применение

Плюсы:

Мы отделили систему от деталей реализации, можем создавать новые форматы для парсера, не меняя текущий код(только добавлять в фабрику).

Так же мы сгруппировали функционально связанные элементы.

Минусы:

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


Комментарии закрыты!