Python 设计模式系列之二: 创建型 Simple Factory 模式
2007-03-30 12:55:53 来源:WEB开发网核心提示: 具体到Python来说,假设有这样一个类:class Person:def __init__(self, name):self.name = name要创建该类的一个实例,Python 设计模式系列之二: 创建型 Simple Factory 模式(2),则应该执行下面的语句:p = Pe
具体到Python来说,假设有这样一个类:
class Person:
def __init__(self, name):
self.name = name
要创建该类的一个实例,则应该执行下面的语句:
p = Person("Gary")
但如果创建对象时完成的工作非常复杂,需要一段很长的代码,你就不能简单地将其全部写入__init__方法中,因为这会违背面向对象思想的两个基本原则:封装(encapsulation)和委派(delegation)。假如执意要做样做,结果只会使你的代码变成一段行为固定的硬编码(hard coding),而整个软件的结构都极有可能变得非常糟糕,因为其它某个模块也许就正依赖于你所创建的这个实例,这样就在无形之间增加了模块之间的耦合度。
将Python对象的创建过程封装到某个类中来单独完成,可以使你的程序变得更加灵活和通用。实践证明,使用下面的六种创建型模式可以更好地改善对象的创建过程:
Simple Factory模式
专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类。
Factory Method模式
将对象的创建交由父类中定义的一个标准方法来完成,而不是其构造函数,究竟应该创建何种对象由具体的子类负责决定。
Abstract Factory模式
提供一个共同的接口来创建相互关联的多个对象。
Singleton模式
保证系统只会产生该类的一个实例,同时还负责向外界提供访问该实例的标准方法。
Builder模式
将复杂对象的创建同它们的具体表现形式(representation)区别开来,这样可以根据需要得到具有不同表现形式的对象。
Prototype模式
利用一个能对自身进行复制的类,使得对象的动态创建变得更加容易。
更多精彩
赞助商链接