b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

工厂模式类图?工厂模式简述?工厂设计模式的好处?简单工厂模式(SimpleFactory Pattern),你要什么我就(2)

电脑杂谈  发布时间:2016-11-04 19:01:44  来源:网络整理

有些情况下Simple Factory可以由抽象产品角色扮演,一个抽象产品类同时是子类的工厂。也就是说,抽象产品角色扮演两种角色和职责,出了基本的定义还还责,负责产品的创建工作。这里我们在上面的例子基础上适当修改一下OK了,新建立一个抽象类(Evolution):

}

那现在,具体的产品对象的设计也应该修改了,把原来实现于IFood接口改为继承此抽象类,如下:

}
15}

通过上面的演化,此时客户端的调用如下:

}
8}

UML草图如下:

工厂模式类图?工厂模式简述?工厂设计模式的好处?简单工厂模式(SimpleFactory Pattern),你要什么我就

在实际的开发中,这种演化是很适用的,可以说是一种编程技巧吧。

4、模式的其他演变

如果系统中只有唯一的一个具体产品对象,那么可以省略抽象产品角色,。这一种其实也就是本钱前面的第一种模式实现。

如果抽象产品角色省略,那么工厂角色就可以与具体产品角色合并。也就是说一个产品类就是自身的工厂。这样把原有三个独立的角色:抽象产品角色、具体产品角色和工厂角色合并为一个,这个类自己负责创建自己的实例。

注:以上演变可以从上面的程序代码中直接修改而来,这里我就不贴代码了。

六、模式优缺点

工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅"消费"产品。简单工厂模式通过这种做法实现了对责任的分割。

当产品有复杂的多层等级结构时,工厂类只有自己,以不变应万变,就是模式的缺点。因为工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。

系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,有可能造成工厂逻辑过于复杂,违背了"开放--封闭"原则(OCP).另外,简单工厂模式通常使用静态工厂方法,这使得无法由子类继承,造成工厂角色无法形成基于继承的等级结构。

七、相关模式

工厂方法模式:每个产品由一个专门的工厂来负责创建。是一种只有唯一一个产品的实现,带有简单工厂的性质。

抽象工厂模式:大致和工厂方法相同。

单例模式:单例的实现和上面模式演变中的最后一种很相似,只要把构造器私有便OK。

八、参考资料

Addison-Wesley,1995,p.185. 中文版:《设计模式:可复用的面向对象软件的基础》 李英军等译.

Alan Sharroway & James r.Trott.中文版:《设计模式精解

张逸 著《软件设计精要与模式》

以上就是关于工厂模式类图的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-20154-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...