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

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

2012-09-23 
初学Java设计模式随记 -- 工厂模式(Factory Pattern) 续利用工厂模式可以将对象的创建过程和使用进行分离(

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

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

在回顾前一篇随记初学Java设计模式随记 -- 工厂模式(Factory Pattern)中例子1例子4时,可能会有这么几个的疑问:

?

为什么要有一个抽象产品类?

为什么工厂方法返回的是一个抽象产品类类型?

为什么在客户端调用时,也是通过抽象产品类来定义要产品类对象?

?

这就是工厂模式中产品类的多态性

?

由于具体产品类继承(或实现)自抽象产品类,客户端就不必知道具体产品的真实类型,一样可以得到自己想要的产品。

这种多态性,促进了工厂模式的封装效果,工厂类将创建哪种产品,以及如何创建产品对象的细节完全封装了起来。

?

通过现实世界来理解多态性:

顾客A本来想买奥迪A6,正好厂家生产了新款的奥迪A8,奥迪A6停产了,而且价格差不多。于是,顾客A就更改了订单,买奥迪A8了。

那么,在例子1的基础上,我们只需要新添加一个具体产品类AudiA8Car,再修改工厂类CarFactory就可以了。

例子5:

?

奥迪A8(具体产品角色):

添加了一个新的具体产品类,一汽大众生产的新款汽车。

一辆汽车被造好,并且出厂了。我终于买了一辆奥迪A8。真是太好了!

?

根据上面的运行结果,可以看到这种多态性带来的好处:

提高了封装效果,客户端不做任何改动,就实现了需求的变化。

?

?

总的来说,

工厂模式通过解耦和多态性,使得对象的创建和使用进行分离,并封装了复杂的对象创建过程,统一了对象的使用方式。

有利于代码的维护和修改,使代码更容易适应需求的变化,并降低了这些变化对系统的影响。

热点排行