读书人

第一天 工场模式之抽象工厂模式

发布时间: 2012-09-06 10:37:01 作者: rapoo

第一天 工厂模式之抽象工厂模式
抽象工厂模式与工厂方法模式的区别
工厂方法模式是一种极端情况的抽象工厂模式,而抽象工厂模式可以看成是工厂方法模式的一种推广。
(1) 工厂方法模式是用来创建一个产品的等级结构的,而抽象工厂模式是用来创建多个产品的等级结构的。工厂方法创建一般只有一个方法,创建一种产品。抽象工厂一般有多个方法,创建一系列产品。
(2) 工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。

抽象工厂模式的使用情况
1.系统不依赖于产品类实例如何被创建,组合和表达的细节。
2.系统的产品有多于一个的产品族,而系统只消费其中某一族的产品(抽象工厂模式的原始用意
3.同属于同一个产品族是在一起使用的。这一约束必须在系统的设计中体现出来。
4.系统提供一个产品类的库,所有产品以同样的接口出现,从而使客户端不依赖于实现。

示例代码
两个抽象产品角色:

public class Client {public static void main(String[] args) {AnimalFactory chinaAnimalFactory = new ChinaAnimalFactory();Lion chinaLion = chinaAnimalFactory.getLion(); chinaLion.eat();Tiger chinaTiger = chinaAnimalFactory.getTiger();chinaTiger.eat();AnimalFactory americAnimalFactory = new AmericAnimalFactory();Lion americLion = americAnimalFactory.getLion();americLion.eat();Tiger americTiger = americAnimalFactory.getTiger();americTiger.eat();}}


读书人网 >编程

热点推荐