python设计模式之抽象工厂模式怎么实现
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容主要讲解"python设计模式之抽象工厂模式怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python设计模式之抽象工厂模式怎么实现"吧!
千家信息网最后更新 2025年01月19日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安全错误
数据库的锁怎样保障安全
长春品质网络技术诚信经营
服务器内存分类
网络技术最发达国家是谁
智能停车场的网络技术
宽带网络技术介绍
手游方舟进化进不去服务器
戴尔远程服务器
腾讯云服务器部署群晖
网络安全学科文件
cad软件开发燃气管网
软件开发 敏捷模型
网络安全物理监管
软件开发为什么是v模型
无线网络技术课程编码
大手牵小手网络安全主题绘画
wcf 服务器与客户端
房地产互联网科技企业名录
京东用的什么服务器
花雨庭服务器安全吗
单位内部数据库建设
校园网络安全解决方法
网络安全部队党小组发言
平安科技网络安全怎么样
有域名服务器了怎么拷贝网站
幸福工厂提示服务器已离线
小飞机服务器试用
软件开发缺陷及问题处理规程
采取网络安全保障措施
西安真格网络技术有限公司
清华大学生网络安全教育平台