Python工厂模式

class CarStore(object):
    def __init__(self):
        self.factory=Factory()
    def order(self,car_type):
        return self.factory.select_car_by_type(car_type)

class Factory(object):
    def select_car_by_type(self,car_type):
        if car_type=="桑塔纳":
            return Suonata()
        elif car_type=="b宝马":
            return Baoma()

买车的时候需要先去CarStore  然后让CarStore通过工厂得到想要的车     如果需要增加工厂生产的车的品种,那么需要修改Factory类

 简单工厂模式(通过一个类达到分离的模式就是简单工厂模式,所谓模式:直白的说就是一种设计的方法或规律)实现了代码的解耦,修改工厂类而不需要进行CarStore的修改

除了简单工厂模式  还有代理模式 监听模式等

 

方法在父类中不进行实现 而在子类中实现,父类仅仅提供了一个模式-----工厂方法模式  如上述BMWCarStore(CarStore)调用BMW工厂进行生产 ,order在CarStore中,而具体调用生产的方法在BMWCarStore中,通过bmw=BMWCarStore()创建对象后,bmw.order()调用父类中的order方法  选择汽车厂的方法又是通过并没有在CarStore中具体实现 ,而是在BMWCarStore中实现

class CarStore(object):
    def select_car(self,car_type):
        pass
    def order(self,car_type):
        return self.select_car(car_type)
class BMWCareStore(CarStore):
    def select_car(self,car_type):
        return BMWCarFactory().select_car_by_type(car_type)

bmw=BMWCareStore()
bmw_car=bmw.order("711")

CarStore本身不知道具体会买宝马的车还是大众的车,那么仅仅提供order方法,最核心的方法交给子类去实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值