首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

初学Java设计方式随记 - 工厂模式(Factory Pattern)

2012-11-04 
初学Java设计模式随记 -- 工厂模式(Factory Pattern)汽车在工厂组装好了我终于买了一辆奥迪A6[黑色,座椅,

初学Java设计模式随记 -- 工厂模式(Factory Pattern)

汽车在工厂组装好了我终于买了一辆奥迪A6[黑色,座椅,发动机,方向盘,四个轮子]。真是太好了!去兜风去。。。

?

顾客A很轻松地买了一辆奥迪A6,高兴地开着车兜风去了。。。

?

?

通过比较例子3例子4,工厂模式的优势体现出来了:

利用工厂模式可以将对象的创建过程和使用进行分离(也就是解藕),可以将复杂的对象创建过程由工厂类进行了封装。

1.这样一来,客户端使用起来就显得非常轻松。

例如:如果客户想要红色的奥迪A6,那么,很简单,厂家给发一款红色的就可以了。客户只要高高兴兴地去开它就行了。

?

2.而且,这个系统,职责分明,思路清晰。

例如:如果出了车祸,如果是因为刹车问题造成的,那么就要找厂商;如果是因为顾客酒驾造成的,就要找顾客。

确定正确的调查对象,找到问题的真正原因,才能找到合适的解决方法,就不会有误判和冤案了。

?

3.此外,这样还起到了可以重用的作用。

例如:?无论有多少客户都买,只要买的是同一款,那么,只要用一套生产线就可以了,节省了很多时间和资源。

?

4.在将来的维护和修改时,就会减少使用对象的影响。

?

例如:客户不需要知道奥迪A6是怎么组装的。原来可能是由人手工装的;后来,是用机器装的;再后来,用了一套更先进的设备装的。这些都与客户无关,因为,客户买车,是为了开车,不需要了解车是怎么组装的。

?

再例如:多个客户购买了同一款汽车,如果这款汽车的刹车都有问题,那么,只需要修改一个工厂类就可以了,客户在使用过程中不会感觉到有什么变化,就不需要改变自己的使用方式了。

?

遗留的问题:

当我们使用JDBC对数据库进行操作的时候,是不是就用到了工厂模式?无论是连接Oracle还是MySQL,我们是不是写起来很简单?是不是不需要关心每种数据库的连接细节?是不是很容易就实现了从MySQL到Oracle的移植?是不是只是用了工厂模式???

?

工厂模式的应用似乎有很多,而且往往是和其他设计模式一起使用,在实际的项目和框架中都是怎么使用工厂模式的?

?

?好了,来个小小的总结:

一个系统的好坏,不是类越少就越好,通过使用设计模式,进行了解藕和封装,使得设计更加合理,系统看起来职责分明、清晰,维护和扩展也更容易。

但是,使用了设计模式,也并不能说就是合理的。就像例子1和例子2,设计模式就没有带来什么优势,反而,使得系统显得繁琐了。

?

热点排行