Python设计模式系列之四: 创建型Abstract Factory模式
2007-03-30 12:56:31 来源:WEB开发网核心提示: 三、一般结构抽象工厂模式是工厂方法模式的进一步抽象和推广,当一个软件系统需要产生一些产品对象,Python设计模式系列之四: 创建型Abstract Factory模式(8),并且这些产品分属于多个产品等级结构时,为了将消费这些产品对象的职责和创建这些产品对象的职责分割开来,它负责描述某些
三、一般结构
抽象工厂模式是工厂方法模式的进一步抽象和推广,当一个软件系统需要产生一些产品对象,并且这些产品分属于多个产品等级结构时,为了将消费这些产品对象的职责和创建这些产品对象的职责分割开来,可以借助于抽象工厂模式。通过运用抽象工厂模式,消费产品的客户端无需直接参与产品的创建工作,而只用向一个公共的工厂接口请求所需的产品就可以了。抽象工厂模式的一般性结构如图4所示,图中为了简化只给出了具有两个层次的产品族(抽象层次和具体层次),但实际系统往往都会具有更加复杂的等级结构。
图4
抽象工厂模式面对的是具有相同或者相似等级结构的多个产品族,它可以很好地解决在多个产品族中创建多个产品对象时的一致性问题。从上图中可以看出,抽象工厂模式涉及到抽象工厂角色、具体工厂角色、抽象产品角色和具体产品角色四个参与者。
抽象工厂(Abstract Factory)角色 是抽象工厂模式的核心,它负责定义创建抽象产品对象的接口。抽象工厂不能被外界直接调用,但任何在模式中用于创建具体产品对象的工厂类都必须从抽象工厂派生,并且实现由它定义的所有工厂方法。
具体工厂(Concrete Factory)角色 是抽象工厂模式的对外接口,它负责实现创建具体产品对象的内部逻辑。具体工厂与应用密切相关,可以被外界直接调用,创建所需要的产品。
抽象产品(Abstract Product)角色 是抽象工厂模式所创建的某一类产品对象的抽象父类,它负责描述某些具体产品所共有的公共接口。
具体产品(Concrete Product)角色 是抽象工厂模式的创建目标,所有创建的对象都是充当这一角色的某个具体产品类的实例。
更多精彩
赞助商链接