Автор оригинала: David Wong.
Режим генератора
Резюме
Шаблон генератора отделяет построение сложного объекта от его представления, так что один и тот же процесс построения может создавать разные представления. Основная функция шаблона генератора состоит в том, чтобы создавать сложные продукты, и создавать продукты шаг за шагом в деталях, то есть шаблон генератора фокусируется на решении проблемы пошагового построения сложных объектов.
Осуществление
Используйте экспорт файла для реализации шаблона генератора. Экспорт файла имеет общий текст, XML и другие форматы файлов. Генератор как интерфейс, отличается специфичной для конкретного генератора реализацией метода интерфейса. Существует также часть алгоритма, в которой директор отвечает за общую конструкцию, которая является относительно постоянной.
Резюме и анализ
Процесс построения объектов в генераторном режиме унифицирован и фиксирован. Изменяющаяся часть вставляется в часть генератора. Пока настроены разные генераторы, один и тот же процесс сборки может создавать разные продукты. Основное внимание в шаблоне генератора уделяется разделению метода построения и конкретной реализации построения, чтобы алгоритм построения можно было использовать повторно. Конкретную реализацию можно легко расширять и переключать, чтобы можно было гибко создавать различные объекты продукта. Шаблон генератора аналогичен шаблону метода шаблона, но шаблон метода шаблона в основном используется для определения скелета алгоритма и задержки некоторых шагов алгоритма до подкласса. Шаблон генератора состоит в том, чтобы определить весь алгоритм построения с помощью “директора”. Некоторые функции алгоритма, связанные с созданием и сборкой конкретных объектов деталей, поручены для реализации конкретным генераторам.
Реализация кода:
Модель генератора (PHP/go)
Оригинал: “https://developpaper.com/design-mode-03-generator-mode/”