Приведите примеры порождающих шаблонов проектирования.
• Абстрактная фабрика (Abstract factory) - Класс, который представляет собой интерфейс для создания других классов.
• Строитель (Builder) - Класс, который представляет собой интерфейс для создания сложного объекта.
• Фабричный метод (Factory method) - Делегирует создание объектов наследникам родительского класса. Это позволяет использовать в коде программы не специфические классы, а манипулировать абстрактными объектами на более высоком уровне.
• Прототип (Prototype) - Определяет интерфейс создания объекта через клонирование другого объекта вместо создания через конструктор.
• Одиночка (Singleton) - Класс, который может иметь только один экземпляр.