Python设计模式系列之四: 创建型Abstract Factory模式

豆豆网   技术应用频道   2007年03月30日    社区交流

本文详细介绍Python设计模式系列之四: 创建型Abstract Factory模式

  抽象工厂角色负责声明用来"生产"抽象产品的工厂方法,在抽象工厂角色中定义的工厂方法通常来讲会有多个,分别用于创建不同产品等级结构中的产品对象。以下是抽象工厂类AbstractFactory的示例性Python代码。

    代码清单11:abstractfactory.py
class AbstractFactory:
 """ 抽象工厂角色 """
 
 # 用于创建产品等级结构A中抽象对象的工厂方法
 def createProductA(self):
  pass
 
 # 用于创建产品等级结构B中抽象对象的工厂方法
 def createProductB(self):
  pass

  具体工厂角色则负责创建产品等级结构中某类具体产品的实例,并将其返回给调用者。具体工厂是与具体产品族相关的,实现时常用的做法是为每个产品族定义一个具体工厂。以下是具体工厂类ConcreteFactory1的示例性Python代码:

    代码清单12:concretefactory1.py
class ConcreteFactory1(AbstractFactory):
 """ 具体工厂角色1 """
 
 # 用于创建产品等级结构A中具体对象的工厂方法
 def createProductA(self):
  product = ConcreteProductA1()
  return product
 
 # 用于创建产品等级结构B中具体对象的工厂方法
 def createProductB(self):
  product = ConcreteProductB1()
  return product

  一般而言,有多少个产品等级结构,就会在抽象工厂角色中发现多少个工厂方法。在每一个产品等级结构中有多少个具体产品,就会有多少个产品族,同时也就会在工厂等级结构中发现多少个具体工厂。以下是具体工厂类ConcreteFactory2的示例性Python代码:

作者:肖文鹏    责编:豆豆技术应用

正在加载评论...