介绍
最后一篇文章研究了使用构建器模式的一般情况,但是当对象在及时创建对象时,该选项没有被涉及。
构建器图案(Builder)是一个生成设计模板,可允许您逐渐创建复杂的对象。当对象具有许多参数或各种配置时,它特别有用。它使用的有趣示例之一是能够分离及时创建对象的过程。
有时无法立即创建对象 – 它的参数可以在程序的不同阶段已知。
python的一个例子
在此示例中,汽车的对象是分阶段创建的:首先,数据的一部分是从服务器加载的,然后用户输入丢失的信息。
import requests
def fetch_car_data():
response = requests.get("https://api.example.com/car-info")
return response.json()
builder = CarBuilder()
# Backend API data
car_data = fetch_car_data()
builder.set_model(car_data["model"])
builder.set_year(car_data["year"])
# User input
color = input("Car color: ")
builder.set_color(color)
gps_option = input("GPS feature? (yes/no): ").lower() == "yes"
builder.set_gps(gps_option)
car = builder.build()
print(car)
想象一下API调用,数据输入在应用程序的不同部分,甚至在不同的库中。然后,与上面的简单示例相比,构建器模式的使用变得更加明显。
优势
– 输出是一种免疫结构,不需要存储临时组装的可选数据
– 逐渐收集对象
– 避免复杂的设计师
– 对象的组装代码仅在一个构建器的一个本质上是不完整的
– 理解代码的便利性
来源
https://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook/dp/B000SEIBB8
https://demensdeum.com/blog/2019/09/23/builder-pattern/