Питоновское
03.05
Строитель - позволяет создавать сложные объекты пошагово. Он отделяет конструирование сложного объекта от его представления, так что в результате одного и того же процесса конструирования могут получиться разные представления.
Стоит использовать когда объект должен создаваться пошагово, и эти шаги могут быть разными для разных вариантов объекта, когда нужно создавать разные представления одного сложного объекта или когда процесс конструирования может быть независим от его частей.
Используется в ORM (SQLAlchemy, Django ORM), библиотека для работы с документами, API клиентах и конфигурации системы.
Позволяет изменять внутреннее представление продукта, изолирует код сборки продукта от его бизнес-логики и даёт более тонкий контроль над процессом конструирования, но усложняет код из-за введения дополнительных классов и требует создания отдельного конкретного строителя для каждого типа продукта.
В отличе от Абстрактной фабрики, Строитель концентрируется на пошаговом создании одного объекта, в то время как фабрика создает семейства связанных объектов.
Небольшой пример: `class Car: def init(self): self.model = None self.engine = None self.color = None
def str(self): return f"{self.color} {self.model} с {self.engine} двигателем"
class CarBuilder: def init(self): self.car = Car()
def set_model(self, model): self.car.model = model return self
def set_engine(self, engine): self.car.engine = engine return self
def set_color(self, color): self.car.color = color return self
def build(self): return self.car
#Использованиеcar = (CarBuilder() .set_model("Tesla Model S") .set_engine("электрическим") .set_color("красный") .build()) print(car)
#weekofpatterns`еще контент в этом сообществе
еще контент в этом соообществе
Питоновское
03.05
войдите, чтобы увидеть
и подписаться на интересных профи