Паттерн Строитель (Builder) — паттерн, порождающий объекты. Отделяет конструирование сложного объекта от его представления так, что в результате одного и того же процесса конструирования могут получаться разные представления.
От абстрактной фабрики отличается тем, что делает акцент на пошаговом конструировании объекта. Строитель возвращает объект на последнем шаге, тогда как абстрактная фабрика возвращает объект немедленно. Строитель часто используется для создания паттерна компоновщик.
class Builder: def build_body(self): raise NotImplementedError def build_head(self): raise NotImplementedError def create_human(self): raise NotImplementedError class Human: def __init__(self, head, body): self.head = head self.body = body def walk(self): print("Walking") def run(self): print("Running") class Body: pass class Head: pass class HumanBuilder(Builder): def build_head(self): return Head() def build_body(self): return Body() def create_human(self): head = self.build_head() body = self.build_body() return Human(head, body) builder = HumanBuilder() human = builder.create_human() human.walk() human.run()
После запуска файла получим
Walking Running