python设计模式之抽象工厂模式怎么实现

python设计模式之抽象工厂模式怎么实现

本篇内容主要讲解“python设计模式之抽象工厂模式怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python设计模式之抽象工厂模式怎么实现”吧!

实现的代码如下:

python设计模式之抽象工厂模式怎么实现

classFruitClass:#品种工厂defget_name(self,name_index):ifname_index==0:name_object=OrangeClass()elifname_index==1:name_object=Hami_MelonClass()elifname_index==2:name_object=GrapeClass()else:name_object=Nonereturnname_objectclassOrangeClass:#橘子类def__init__(self):self.name="橘子"defprint_name(self):print("您购买的水果为:%s"%self.name)classHami_MelonClass:#哈密瓜类def__init__(self):self.name="哈密瓜"defprint_name(self):print("您购买的水果为:%s"%self.name)classGrapeClass:#葡萄类def__init__(self):self.name="葡萄"defprint_name(self):print("您购买的水果为:%s"%self.name)classFruitWeight:#称重工厂def__init__(self,weight):self.weight=float(weight)defprint_weight(self):print("该水果的重量为:%.2f千克"%self.weight)classFruitPrice:#价格工厂defget_price(self,name_index,variety):ifname_index==0:price_object=OrangePrice(variety)elifname_index==1:price_object=Hami_MelonPrice()elifname_index==2:price_object=GrapePrice()else:price_object=Nonereturnprice_objectclassOrangePrice:#橘子价格类def__init__(self,variety):self.variety=varietyifself.variety==1:self.price=8.5else:self.price=11.0defprint_price(self):print("该水果的单价为:%.2f元/千克"%self.price)classHami_MelonPrice:#哈密瓜价格类def__init__(self):self.price=24.3defprint_price(self):print("该水果的价格为:%.2f元/千克"%self.price)classGrapePrice:#葡萄价格类def__init__(self):self.price=16.2defprint_price(self):print("该水果的价格为:%.2f元/千克"%self.price)returnself.priceclassFruitPack:#包装工厂def__init__(self,pack):ifpack==1:self.pack="散称"else:self.pack="盒装"defprint_pack(self):print("该水果的打包方式为:%s"%self.pack)classFruitFactory:def__init__(self,name_index,weight,variety,pack):#任务的分配,品种、重量、价格、包装方式self.name_object=FruitClass().get_name(name_index)self.weight_object=FruitWeight(weight)self.price_object=FruitPrice().get_price(name_index,variety)self.pack_object=FruitPack(pack)defprint_purchase(self):#计算购买的金额money=self.price_object.price*self.weight_object.weightprint("需要支付的金额共计为:%.2f元"%money)defshow_info(self):#展示最终的购买信息self.name_object.print_name()self.weight_object.print_weight()self.price_object.print_price()self.pack_object.print_pack()self.print_purchase()print("-*-"*20)classConsumer:#消费者类def__init__(self):print("-*-"*20)#输入原始的“购买需求”信息self.name=input("请输入你要购买的水果名称:0.橘子1.哈密瓜2.葡萄")self.weight=input("请输入你要购买水果的重量(kg):")self.variety=input("如果您购买橘子,我们有2种橘子:0.不买橘子1.甘橘2.砂糖橘")self.pack=input("请您选择该水果的包装方式:1.散称2.盒装")print("-*-"*20)defrequest(self):#返回相关的购买信息returnself.name,self.weight,self.variety,self.packif__name__=="__main__":#创建顾客buyer=Consumer()#拿到顾客的购买信息buy_info=buyer.request()#使用水果工厂,传达指令至旗下的子工厂并执行购买操作buy_res=FruitFactory(int(buy_info[0]),int(buy_info[1]),int(buy_info[2]),int(buy_info[3]))#购买信息的展示buy_res.show_info()

到此,相信大家对“python设计模式之抽象工厂模式怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

发布于 2022-03-29 22:37:01
收藏
分享
海报
0 条评论
27
上一篇:python的偏函数怎么使用 下一篇:如何利用Python实现定时程序
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码