1、动机与定义
工厂模式中,一个工厂只能提供一个或一类产品,当产品种类较多,形成产品系列(比如我们要创建跨平台的按钮,菜单,文本框等等一系列GUI控件:
单纯使用工厂模式会产生大量工厂,而且后期维护也不方便,我们可以从产品中找到规律,如果产品等级相对固定,以后只会新增产品族,那么我们就可以把整个产品族放到一个工厂创建,以后新增其他系统产品族也非常方...
分类:
其他好文 时间:
2014-06-20 10:30:06
阅读次数:
234
抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据LSP原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上系...
分类:
其他好文 时间:
2014-05-27 01:17:23
阅读次数:
206
有时候,我们要求工厂创建一组具有某些属性的产品,比如来一桌法式大餐。具体的菜式属于产品,而法式属于产品的属性。将这两个概念抽象一下,就有了产品族和产品等级结构的概念:同一列的所有产品继承同一个父类,同一行的产品构成一个产品族。模式图从图中看出,抽象工厂可以同时依赖于两个产品类,这两个产品类构成一个产...
分类:
编程语言 时间:
2014-05-26 10:28:31
阅读次数:
191
抽象工厂模式,提供一个创建一系列相关或者相互依赖对象的接口,而无需指定他们具体的类。
抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体情况下,创建多个产品族中的产品对象。根据LSP原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色...
分类:
其他好文 时间:
2014-05-22 23:20:13
阅读次数:
222
抽象工厂模式向客户端提供一个接口,使得客户端在不必指定具体类型的情况下,创建多个产品族中的对象。本文采取的仍然是接着以前的那个快餐店的例子。现在,快餐店经常良好,逐渐发展壮大,为了适合不同地方人的饮食习惯,创建了两大系列(相当于产品族)快餐,北方系列和南方系列。每个系列分别由一个大厨掌勺。抽象工.....
分类:
其他好文 时间:
2014-05-16 08:53:14
阅读次数:
253
抽象工厂模式是工厂方法的一般情况。产品族:相同属性的不同种类的产品的集合。如南方水果和南方蔬菜为一个产品族,北方水果与北方蔬菜为另一个产品族产品等级结构:种类即为等级结构。如水果、蔬菜两个等级结构。如果工厂只生产水果,则为工厂方法模式。即工厂方法模式的工厂只生产一个等级结构的产品。如果工厂生产水果与...
分类:
其他好文 时间:
2014-05-10 22:17:51
阅读次数:
292