from abc import ABC, abstractmethod
# 定义一个抽象产品类
class Product(ABC):
@abstractmethod
def use(self):
pass
# 定义具体产品类A
class ConcreteProductA(Product):
def use(self):
return "使用具体产品A"
# 定义具体产品类B
class ConcreteProductB(Product):
def use(self):
return "使用具体产品B"
# 定义一个抽象工厂类
class Factory(ABC):
@abstractmethod
def create_product(self):
pass
# 定义具体工厂类A
class ConcreteFactoryA(Factory):
def create_product(self):
return ConcreteProductA()
# 定义具体工厂类B
class ConcreteFactoryB(Factory):
def create_product(self):
return ConcreteProductB()
# 客户端代码
def client_code(factory: Factory):
product = factory.create_product()
print(product.use())
if __name__ == "__main__":
factory_a = ConcreteFactoryA()
client_code(factory_a) # 输出: 使用具体产品A
factory_b = ConcreteFactoryB()
client_code(factory_b) # 输出: 使用具体产品B
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
工厂模式是一种创建型设计模式,它提供了一种创建对象的接口,但由子类决定要实例化的类是哪一个。工厂模式让一个类的实例化延迟到其子类。在Python中,可以通过定义一个工厂类及其子类来实现工厂模式。压缩包文件代码是一个简单的Python实现工厂模式的例子。 在这个例子中: 1、Product 是一个抽象产品类,它定义了一个抽象方法 use 2、ConcreteProductA 和 ConcreteProductB 是具体产品类,它们实现了 Product 的 use 方法 3、Factory 是一个抽象工厂类,它定义了一个抽象方法 create_product 4、ConcreteFactoryA 和 ConcreteFactoryB 是具体工厂类,它们实现了 Factory 的 create_product 方法,并分别返回 ConcreteProductA 和 ConcreteProductB 的实例 5、client_code 函数是一个客户端代码,它接受一个 Factory 类型的对象,并调用该对象的 create_product 方法来创建产品,然后调用产品的 use 方法
资源推荐
资源详情
资源评论
收起资源包目录
通过python实现设计模式-工厂模式.rar (1个子文件)
factory.py 1KB
共 1 条
- 1
资源评论
图表制作解说(目标1000个图表)
- 粉丝: 1338
- 资源: 430
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功