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()

结果:

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

  

原文地址:https://www.cnblogs.com/shiyixirui/p/12973796.html