Python设计模式----2.工厂模式

工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题

首先完全实现‘开-闭 原则’,实现了可扩展。其次更复杂的层次结构,可以应用于产品结果复杂的场合。

工厂方法模式的对简单工厂模式进行了抽象。

有一个抽象的Factory类(可以是抽象类和接口),这个类将不在负责具体的产品生产,而是只制定一些规范,具体的生产工作由其子类去完成。

在这个模式中,工厂类和产品类往往可以依次对应。即一个抽象工厂对应一个抽象产品,一个具体工厂对应一个具体产品,这个具体的工厂就负责生产对应的产品。   

 

代码:

复制代码
"""设计模式--工厂模式"""
class A():
    '''工厂类'''
    def __init__(self):
        self.classname = '工厂类'
 
class A1(A):
    def run(self):
        print(self.classname + '-- this is A1')
 
class A2(A):
    def run(self):
        print(self.classname + '-- this is A2')
 
 
class B():
    '''接口基类'''
    def create(self):
        '''把要创建的工厂对象装配进来'''
        raise  NotImplementedError
 
class B1(B):
    def create(self):
        return A1()
 
class B2(B):
    def create(self):
        return A2()
 
 
B1().create().run()
B2().create().run()
复制代码

 

结果:

1
2
工厂类-- this is A1
工厂类-- this is A2

  

posted @   十一的杂文录  阅读(136)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示