Python设计模式-02-建造者模式
1.Python设计模式-设计模式简介2.Python设计模式-01-工厂模式
3.Python设计模式-02-建造者模式
4.Python设计模式-03-原型模式5.Python设计模式-04-单例模式6.Python设计模式-05-适配器模式7.Python设计模式-06-代理模式8.Python设计模式-07-装饰模式9.Python设计模式-08-桥接模式10.Python设计模式-09-组合模式11.Python设计模式-10-外观模式12.Python设计模式-11-享元模式13.Python设计模式-12-观察者模式14.Python设计模式-13-状态模式15.Python设计模式-14-策略模式16.Python设计模式-15-责任链模式17.Python设计模式-16-命令模式18.Python设计模式-17-外观模式19.Python设计模式-18-中介模式20.Python设计模式-19-备忘录模式21.Python设计模式-20-迭代器模式22.Python设计模式-21-解释器模式23.Python设计模式-22-模板模式建造者模式是一种创建型设计模式,它可以将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。建造者模式通常包括以下几个角色:
- 产品(Product):表示被构建的复杂对象,通常包含多个部分或组件。
- 抽象建造者(Builder):定义了创建产品的抽象接口,包括创建产品的各个部分的方法。
- 具体建造者(Concrete Builder):实现了抽象建造者接口,负责创建产品的各个部分,并组装成最终的产品。
- 指挥者(Director):负责调用具体建造者来创建产品的各个部分,并组装成最终的产品。
下面是一个简单的 Python 示例,演示了如何使用建造者模式创建一个包含多个部分的产品:
class Product:
def __init__(self):
self.part_a = None
self.part_b = None
self.part_c = None
class Builder:
def build_part_a(self):
pass
def build_part_b(self):
pass
def build_part_c(self):
pass
def get_product(self):
pass
class ConcreteBuilder(Builder):
def __init__(self):
self.product = Product()
def build_part_a(self):
self.product.part_a = 'Part A'
def build_part_b(self):
self.product.part_b = 'Part B'
def build_part_c(self):
self.product.part_c = 'Part C'
def get_product(self):
return self.product
class Director:
def __init__(self, builder):
self.builder = builder
def construct(self):
self.builder.build_part_a()
self.builder.build_part_b()
self.builder.build_part_c()
builder = ConcreteBuilder()
director = Director(builder)
director.construct()
product = builder.get_product()
print(product.part_a) # 输出 'Part A'
print(product.part_b) # 输出 'Part B'
print(product.part_c) # 输出 'Part C'
在上面的示例中,我们定义了一个 Product 类,它表示被构建的复杂对象,包含了多个部分。然后,我们定义了一个抽象建造者 Builder,它定义了创建产品的抽象接口,包括创建产品的各个部分的方法和获取产品的方法。接下来,我们定义了一个具体建造者 ConcreteBuilder,它实现了抽象建造者接口,负责创建产品的各个部分,并组装成最终的产品。最后,我们定义了一个指挥者 Director,它负责调用具体建造者来创建产品的各个部分,并组装成最终的产品。
在使用建造者模式时,我们首先创建一个具体建造者对象,然后将它传递给指挥者对象。指挥者对象调用具体建造者对象的方法来创建产品的各个部分,并最终获取到完整的产品对象。需要注意的是,具体建造者对象可以根据需要进行替换,从而创建不同的产品。
作者:韩志超
出处:https://www.cnblogs.com/superhin/p/17486235.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
如有问题,请微信联系 superz-han,并发送原文链接。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~