Python设计模式----4.构建者模式

构建者模式

  将一个复杂对象的构造与表现进行分离,利用多个步骤进行创建,同一个构建过程可用于创建多个不同的表现

  构建者模式一般由 Director(指挥官)和 Builder(建设者)构成

 

复制代码
class Car:
    def __init__(self):
        self.money = None
        self.address = None
        self.car_name = None
        self.buy_time = None

    def __str__(self):
        return f'准备了{self.money}元,去{self.address}看看{self.car_name},还不错,买了,时间:{self.buy_time}'


class CarBuilder:
    def __init__(self):
        self.car = Car()

    def ready_money(self, money):
        self.car.money = money
        return self
    
    def see_car(self, address):
        self.car.address = address
        return self

    def test_drive(self, car_name):
        self.car.car_name = car_name
        return self

    def buy_car(self, buy_time):
        self.car.buy_time = buy_time
        return self


class Director:
    def __init__(self):
        self.builder = None

    def build(self, builder):
        self.builder = builder
        self.builder.ready_money('100').see_car('4s店').test_drive('单车').buy_car('2020.11.22')
        return self.builder.car


if __name__ == '__main__':
    car_builder = CarBuilder()
    director = Director()

    car = director.build(car_builder)
    print(car)
复制代码

 

posted @   十一的杂文录  阅读(119)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示