二十三种设计模式:工厂模式篇(Python)

    xiaoxiao2022-07-13  164

    工厂模式

    (1) 介绍 工厂模式(Factory Pattern),一种常用设计模式,属于创建型模式。 在工厂模式中强调创建对象不对客户端暴露逻辑过程,只提供共用接口来创建对象。 (2) 解决问题 实例化对象过程下沉,来让子类自己决定实例化哪一个工厂类。 (3) 使用场景 我们有计划的去创建不同条件下创建不同实例。 (4) 核心 创建实例过程要在子类 (5) 代码 结构:输入我们的需求,定制产生我们的想要的对象。

    模式分为:简单工厂函数和工厂模式

    内容:世界上有很多好茶,我们找到了两种,龙井茶与红茶。如果你想要,可以直接从大厂购买,而不是在意怎么从全世界找到它,以及怎么种植它。而购买又可分为,从售卖机处购买和商铺处购买。 第一种简单工厂函数,就是从售卖机处购买,你可以挑选售卖机(函数)内的各种茶----用函数打包多个实例化过程,根据需求选择一个实例化对象。 另一种是工厂模式,这种在商铺处购买,只卖龙井茶的商铺(实例化龙井茶子类)和只卖红茶的商铺(实例化红茶子类)。

    #coding=utf-8 #!/usr/bin/python #茶 class Tea(): def __init__(self): pass def Drink(self): pass #龙井茶 class DragonWellTea(Tea): def Drink(self): print('龙井茶好喝') #红茶 class BlackTea(Tea): def Drink(self): print('红茶饮料好喝') #售卖机 def Sell(type:str): if type == '龙井茶': return DragonWellTea() elif type == '红茶': return BlackTea() #只卖龙井茶的商铺 class AShop(): @staticmethod def BuyDragonWellTea(): return DragonWellTea() #只卖红茶的商铺 class BShop(): @staticmethod def BuyBlackTea(): return BlackTea() ''' A(C) B(C) A和B都继承C。设置一个函数,输入不同的值, 返回A或B的实例化对象----简单工厂函数(打包) A(C) B(C) A和B都继承C。设置a类,固定返回A实例化对象。 设置b类,固定返回B实例化对象。-----工厂模式(代加工) ''' if __name__ == '__main__': #简单工厂函数 XiaoMing = Sell('红茶')#小明在售卖机买了红茶 XiaoMing.Drink() #工厂模式 LiLi = AShop.BuyDragonWellTea()#丽丽在只卖龙井茶的商铺买了龙井茶 LiLi.Drink()

    (6)优点 工厂模式:1, 使用者创建对象,只需知道名称即可。2 ,增加产品,扩展以下工厂类即可。3,屏蔽产品具体实现。

    (个人练习)

    最新回复(0)