WEB开发网
开发学院软件开发Python Python 设计模式系列之二: 创建型 Simple Factory... 阅读

Python 设计模式系列之二: 创建型 Simple Factory 模式

 2007-03-30 12:55:53 来源:WEB开发网   
核心提示: 图3简单工厂模式的实质是由一个工厂类根据传入的参量,动态决定应该创建出哪一个产品类的实例,Python 设计模式系列之二: 创建型 Simple Factory 模式(6),从上图可以看出,简单工厂模式涉及到工厂角色、抽象产品角色和具体产品角色三个参与者,以下是抽象产品类的示例性Pytho

图3

简单工厂模式的实质是由一个工厂类根据传入的参量,动态决定应该创建出哪一个产品类的实例。从上图可以看出,简单工厂模式涉及到工厂角色、抽象产品角色和具体产品角色三个参与者。

工厂(Creator)角色

是简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。

抽象产品(Product)角色

是简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。

具体产品(Concrete Product)角色

是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

工厂角色负责创建一个具体产品的实例,并将其返回给调用者,以下是工厂类的示例性Python代码:

代码清单6:creator.py
class Creator:
  # 创建具体产品类的方法
  def factory(self):
    return ConcreteProduct()

抽象产品角色的主要目的是为所有的具体产品提供一个共同的接口,通常只需给出相应的声明就可以了,而不用给出具体的实现。以下是抽象产品类的示例性Python代码:

代码清单7:product.py
class Product:
  # 所有具体产品类的公共接口
  def interface(self):
    pass

具体产品角色充当最终的创建目标,一般来讲它是抽象产品类的子类,实现了抽象产品类中定义的所有接口方法。以下是具体产品类的示例性Python代码:

代码清单8:concrete.py
class ConcreteProduct(Product):
  # 公共接口的实现
  def interface(self):
    print "Concrete Product Method"

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Python 设计模式 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接