Python设计模式系列之三: 创建型Factory Method模式
2007-03-30 12:55:15 来源:WEB开发网核心提示: 具体产品(Concrete Product)角色是工厂方法模式的创建目标,所有创建的对象都是充当这一角色的某个具体类的实例,Python设计模式系列之三: 创建型Factory Method模式(10),抽象工厂角色负责声明工厂方法(factory method),用来"生产&q
具体产品(Concrete Product)角色 是工厂方法模式的创建目标,所有创建的对象都是充当这一角色的某个具体类的实例。
抽象工厂角色负责声明工厂方法(factory method),用来"生产"抽象产品,以下是抽象工厂的示例性Python代码:
代码清单9:creator.py
class Creator:
""" 抽象工厂角色 """
# 创建抽象产品的工厂方法
def factoryMethod(self):
pass
具体工厂角色负责创建一个具体产品的实例,并将其返回给调用者。具体工厂是与具体产品相关的,实现时一般常用的做法是为每个具体产品定义一个具体工厂。以下是具体工厂的示例性Python代码:
代码清单10:concretecreator.py
class ConcreteCreator(Creator):
""" 具体工厂角色 """
# 创建具体产品的工厂方法
def factoryMethod(self):
product = ConcreteProduct()
return product
抽象产品角色的主要目的是为所有的具体产品提供一个共同的接口,通常只需给出相应的声明就可以了,而不用给出具体的实现。以下是抽象产品类的示例性Python代码:
代码清单11:product.py
class Product:
""" 抽象产品角色 """
# 所有产品类的公共接口
def interface(self):
pass
具体产品角色充当最终的创建目标,一般来讲它是抽象产品类的子类,实现了抽象产品类中定义的所有工厂方法,实际应用时通常会具有比较复杂的业务逻辑。以下是具体产品类的示例性Python代码:
更多精彩
赞助商链接