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

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模式

利用一个能对自身进行复制的类,使得对象的动态创建变得更加容易。

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

Tags:Python 设计模式 系列

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