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

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

 2007-03-30 12:55:53 来源:WEB开发网   
核心提示: 所有几何图形类都定义好后,下面要做的就是提供一个"工厂"类ShapeFactory,Python 设计模式系列之二: 创建型 Simple Factory 模式(5),来创建各种几何图形的具体实例,ShapeFactory类的作用就是根据外界的要求,适合用来对大量具有共

所有几何图形类都定义好后,下面要做的就是提供一个"工厂"类ShapeFactory,来创建各种几何图形的具体实例。ShapeFactory类的作用就是根据外界的要求,创建出不同的几何图形对象,如圆形(Circle)、矩形(Rectangle)或菱形(Diamond),这样整个软件的体系结构就将如图2所示。

图2

ShapeFactory类用于创建各种几何图形的实例,其实现代码如下所示:

代码清单5:shapefactory.py
class ShapeFactory:
  def factory(self, which):
    if which == "Circle":
      return Circle()
    elif which == "Rectangle":
      return Rectangle()
    elif which == "Diamond":
      return Diamond()
    else:
      return None

在ShapeFactory类中只定义了一个方法factory(),外界通过调用该方法,来创建其所需的几何图形对象,但如果所请求的类是系统所不支持的,则将返回None。在引入了工厂类之后,其它模块如果想生成几何图形类的实例,只需调用ShapeFactory类的factory()方法就可以了:

fac = ShapeFactory()
shape = fac.factory("Diamond")
if shape != None:
  shape.draw()

就样就成功地将类是如何创建的这一实现细节向外界隐藏起来了,这就是简单工厂模式所采取的基本策略。

三、一般结构

简单工厂模式属于类的创建型模式,适合用来对大量具有共同接口的类进行实例化,它可以推迟到运行的时候才动态决定要创建哪个类的实例,而不是在编译时就必须知道要实例化哪个类。简单工厂模式的一般性结构如图3所示:

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

Tags:Python 设计模式 系列

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