设计模式-建造者模式

本文介绍了建造者模式,一种用于创建复杂对象的抽象工厂方式,着重于构造对象的顺序。通过分离构建和表示,建造者模式允许相同的构建过程产生不同的对象表示。示例中展示了如何使用抽象建造者和具体建造者控制手机组件的组装,并通过指挥者类来定义组装顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

建造者模式

主要构建复杂的对象,和抽象工厂类似,建造者模式着重控制构造顺序
建造者模式使得对象的构建和表示分离,使同样的构建过程创建不同的表示

# encoding: utf-8
from abc import ABCMeta, abstractmethod

class phone(object):
    def __init__(self,shell = None, os = None, cpu = None):
        self.shell = shell
        self.os = os
        self.cpu = cpu

    def __str__(self):
        return "%s,%s,%s" % (self.shell,self.os,self.cpu)

#抽象建造者
class AbsPhoneBuilder(object):
    __metaclass__ = ABCMeta

    def make_shell(self):
        pass

    def make_os(self):
        pass

    def make_cpu(self):
        pass

#具体建造者
class PhoneBuilder(AbsPhoneBuilder):
    def __init__(self):
        self.phone = phone()

    def make_shell(self):
        self.phone.shell = "something"
        print "制造手机壳"

    def make_os(self):
        self.phone.os = "someos"
        print "安装系统"

    def make_cpu(self):
        self.phone.cpu = "somecpu"
        print "制造cpu"

#指挥者
class PhoneDirector(object):
    def build_phone(self,a_phone):
        #控制组装顺序
        a_phone.make_cpu()
        a_phone.make_shell()
        a_phone.make_os()
        return a_phone.phone

#client

a_phone_build = PhoneBuilder()
p_director = PhoneDirector()
#开始生产
p = p_director.build_phone(a_phone_build)
print p

使同样的构建过程创建不同的表示
这句话的理解:PhoneDirector创建a_phone,你也可以创建b_phone,cpu什么得都不一样,等于不同的手机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值