python设计模式之抽象工厂模式怎么实现
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,本篇内容主要讲解"python设计模式之抽象工厂模式怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python设计模式之抽象工厂模式怎么实现"吧!
千家信息网最后更新 2025年11月09日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安全错误
数据库的锁怎样保障安全
语音服务器连接失败金铲铲
svn代码服务器
数据库技术创建修改表实验代码
微博服务器连接失败
有实力的存储服务器价格
软件开发风险与认识
网络安全法公布于什公时候
北京拉卡网络技术有限公司
金华桌面软件开发自学步骤
您与ea服务器的链接已经中断
手机登录台湾服务器
有关网络安全的事件
软件开发 win10版本
深圳商城软件开发费用是多少
sql数据库表格迁移
dell服务器修改启动硬盘
光模块软件开发工程师
江西信息化软件开发销售价格
删除输入法软件开发
数据库改过密码
网络安全密码遗失
怎么用exce分析数据库
公司信息网络安全自查方案
mongodb数据库安全性
龙曼淘网络技术
网络安全从你做起
粘土服务器怎么全部打字
汽车软件开发商家
每天有多少网络安全问题
开机总自动弹出服务器管理器