python设计模式之抽象工厂模式怎么实现
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"python设计模式之抽象工厂模式怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python设计模式之抽象工厂模式怎么实现"吧!
千家信息网最后更新 2026年11月02日python设计模式之抽象工厂模式怎么实现
本篇内容主要讲解"python设计模式之抽象工厂模式怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python设计模式之抽象工厂模式怎么实现"吧!
实现的代码如下:
class FruitClass: # 品种工厂 def get_name(self, name_index): if name_index == 0: name_object = OrangeClass() elif name_index == 1: name_object = Hami_MelonClass() elif name_index == 2: name_object = GrapeClass() else: name_object = None return name_objectclass OrangeClass: # 橘子类 def __init__(self): self.name = "橘子" def print_name(self): print("您购买的水果为:%s" % self.name)class Hami_MelonClass: # 哈密瓜类 def __init__(self): self.name = "哈密瓜" def print_name(self): print("您购买的水果为:%s" % self.name)class GrapeClass: # 葡萄类 def __init__(self): self.name = "葡萄" def print_name(self): print("您购买的水果为:%s" % self.name)class FruitWeight: # 称重工厂 def __init__(self, weight): self.weight = float(weight) def print_weight(self): print("该水果的重量为:%.2f千克" % self.weight)class FruitPrice: # 价格工厂 def get_price(self, name_index, variety): if name_index == 0: price_object = OrangePrice(variety) elif name_index == 1: price_object = Hami_MelonPrice() elif name_index == 2: price_object = GrapePrice() else: price_object = None return price_objectclass OrangePrice: # 橘子价格类 def __init__(self, variety): self.variety = variety if self.variety == 1: self.price = 8.5 else: self.price = 11.0 def print_price(self): print("该水果的单价为:%.2f元/千克" % self.price)class Hami_MelonPrice: # 哈密瓜价格类 def __init__(self): self.price = 24.3 def print_price(self): print("该水果的价格为:%.2f元/千克" % self.price)class GrapePrice: # 葡萄价格类 def __init__(self): self.price = 16.2 def print_price(self): print("该水果的价格为:%.2f元/千克" % self.price) return self.priceclass FruitPack: # 包装工厂 def __init__(self, pack): if pack == 1: self.pack = "散称" else: self.pack = "盒装" def print_pack(self): print("该水果的打包方式为:%s" % self.pack)class FruitFactory: 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) def print_purchase(self): # 计算购买的金额 money = self.price_object.price * self.weight_object.weight print("需要支付的金额共计为:%.2f元" % money) def show_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)class Consumer: # 消费者类 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) def request(self): # 返回相关的购买信息 return self.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设计模式之抽象工厂模式怎么实现"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
水果
工厂
价格
橘子
模式
信息
哈密瓜
葡萄
哈密
设计模式
设计
方式
重量
包装
输入
内容
品种
金额
顾客
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海睿民互联网科技有限公司
互联网最新的科技
礼当家互联网科技
奔汉互联网科技
齐家互联网科技有限公司
互联网科技生活的内容
深圳互联网科技怎么样
华中科技有哪些互联网大佬
福州新华互联网科技学校 知乎
湖南诚度互联网科技有限公司
佳云科技和互联网广告
全球顶尖互联网科技公司
亳州好赞互联网科技有限公司
广州新华互联网科技学校电竞方面
晋城互联网科技
2021世界互联网领先科技成果发布
唯美互联网科技
玉溪新华互联网科技怎么选
10位科技互联网大佬
互联网科技创业计划的风险分析
咖啡豆
互联网加科技
科技互联网企业
互联网科技行业发展
互联网科技财经
互联网公司 科技公司
互联网与新科技
鑫亿盛互联网科技
阿里互联网科技公司
风投北京互联网科技