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所示:
更多精彩
赞助商链接