黑马程序员:Java培训、Android培训、iOS培训、.Net培训
黑马程序员--抽象工厂模式
一、定义
提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
二、工厂方法模式类图
1)通常在运行时创建一个ConcreteCreator实例。这一具体的工厂创建具有特定实现的产品对象。为创建不同的产品对象,客户应使用不同的具体工厂。
2)Creator将产品对象的创建延迟到它的ConcreteCreator子类。
三、适用性
1、一个系统要独立于它的产品的创建、组合和表示时。
2、一个系统要由多个产品系列中的一个来配置时。
3、当要强调一系列相关的产品对象的设计以便进行联合使用时。
4、当你提供一个产品类库,而只想显示它们的接口而不是实现时。
四、使用工厂方法模式需要考虑的问题
1、将具体工厂设置为单件
2、创建产品系列
要求每个产品系列都要有一个新的具体工厂子类,即使这些产品系列间的差异很小。如果有多个可能的产品系列,具体工厂也可以使用Prototype模式来实现。
3、定义可扩展的工厂
一个方法是使用工厂参数。
写在模式之前:http://www.cnblogs.com/oo-lab/articles/4593399.html
策略模式:http://www.cnblogs.com/oo-lab/articles/4593407.html
迭代器模式:http://www.cnblogs.com/oo-lab/articles/4593416.html
观察者模式:http://www.cnblogs.com/oo-lab/articles/4593418.html
命令模式:http://www.cnblogs.com/oo-lab/articles/4593425.html
模板方法模式:http://www.cnblogs.com/oo-lab/articles/4593428.html
状态模式:http://www.cnblogs.com/oo-lab/articles/4593429.html
单件模式:http://www.cnblogs.com/oo-lab/articles/4593432.html
工厂方法模式:http://www.cnblogs.com/oo-lab/articles/4593435.html
抽象工厂模式:http://www.cnblogs.com/oo-lab/articles/4593440.html
生成器模式:http://www.cnblogs.com/oo-lab/articles/4593444.html