[size=medium][b]分:简单工厂、工厂方法、抽象工厂[/b][/size]
[size=medium][b]简单工厂模式[/b]
简单工厂模式又称静态工厂方法模式。重命名上就可以看出这个模式一定很简单。它存在的目的很简单:定义一个用于创建对象的接口。
[img]http://dl2.iteye.com/upload/attachment/0116/0103/35c833b0-096f-3846-91ee-4f7d14bede56.png[/img]
[b]工厂方法模式[/b]
工厂方法模式去掉了简单工厂模式中工厂方法的静态属性,使得它可以被子类继承。
这样在简单工厂模式里集中在工厂方法上的压力可以由工厂方法模式里不同的工厂子类来分担。
[b]抽象工厂模式[/b]
抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广。
假设一个子系统需要一些产品对象,而这些产品又属于一个以上的产品等级结构。那么为了将消费这些产品对象的责任和创建这些产品对象的责任分割开来,可以引进抽象工厂模式。这样的话,消费产品的一方不需要直接参与产品的创建工作,而只需要向一个公用的工厂接口请求所需要的产品。
通过使用抽象工厂模式,可以处理具有相同(或者相似)等级结构中的多个产品族中的产品对象的创建问题。如下图所示:
[img]http://dl2.iteye.com/upload/attachment/0116/0105/54e693e8-a1e7-3280-a7b1-a85f3b5ac0e2.png[/img]
由于这两个产品族的等级结构相同,因此使用同一个工厂族也可以处理这两个产品族的创建问题,这就是抽象工厂模式。
根据产品角色的结构图,就不难给出工厂角色的结构设计图
[img]http://dl2.iteye.com/upload/attachment/0116/0107/a33956e2-5e57-3e1c-a55c-46de84868d1a.png[/img]
可以看出,每一个工厂角色都有两个工厂方法,分别负责创建分属不同产品等级结构的产品对象。
[img]http://dl2.iteye.com/upload/attachment/0116/0109/a9721c35-bc30-34ee-bf21-42280a83908e.png[/img]
[/size]
[size=medium][b]简单工厂模式[/b]
简单工厂模式又称静态工厂方法模式。重命名上就可以看出这个模式一定很简单。它存在的目的很简单:定义一个用于创建对象的接口。
[img]http://dl2.iteye.com/upload/attachment/0116/0103/35c833b0-096f-3846-91ee-4f7d14bede56.png[/img]
[b]工厂方法模式[/b]
工厂方法模式去掉了简单工厂模式中工厂方法的静态属性,使得它可以被子类继承。
这样在简单工厂模式里集中在工厂方法上的压力可以由工厂方法模式里不同的工厂子类来分担。
[b]抽象工厂模式[/b]
抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广。
假设一个子系统需要一些产品对象,而这些产品又属于一个以上的产品等级结构。那么为了将消费这些产品对象的责任和创建这些产品对象的责任分割开来,可以引进抽象工厂模式。这样的话,消费产品的一方不需要直接参与产品的创建工作,而只需要向一个公用的工厂接口请求所需要的产品。
通过使用抽象工厂模式,可以处理具有相同(或者相似)等级结构中的多个产品族中的产品对象的创建问题。如下图所示:
[img]http://dl2.iteye.com/upload/attachment/0116/0105/54e693e8-a1e7-3280-a7b1-a85f3b5ac0e2.png[/img]
由于这两个产品族的等级结构相同,因此使用同一个工厂族也可以处理这两个产品族的创建问题,这就是抽象工厂模式。
根据产品角色的结构图,就不难给出工厂角色的结构设计图
[img]http://dl2.iteye.com/upload/attachment/0116/0107/a33956e2-5e57-3e1c-a55c-46de84868d1a.png[/img]
可以看出,每一个工厂角色都有两个工厂方法,分别负责创建分属不同产品等级结构的产品对象。
[img]http://dl2.iteye.com/upload/attachment/0116/0109/a9721c35-bc30-34ee-bf21-42280a83908e.png[/img]
[/size]