黑马程序员技术交流社区

标题: 关于工厂模式 [打印本页]

作者: 黄嵘才    时间: 2012-12-1 20:33
标题: 关于工厂模式
工厂模式和抽象工厂模式的相同点和不同点是什么啊?最好能有图文,和生活的实例列出。谢谢各位。

作者: 马海保    时间: 2012-12-1 20:47
简单工厂模式:用来生产同一等级中的任意产品(不支持增加新产品)

工厂方法模式:雍闿生产同一等级结构中的固定产品(支持增加新产品)

抽象工厂模式:用靠生产不同产品族的全部产品(不支持产品增加,但支持产品族的增加)

eg:简单工厂模式:

对于java来说,你能见到的大部分抽象工厂模式都是这样的:---它的里面是一堆工厂方法,每个工厂方法返回某种类型的对象。比如说工厂可以生产鼠标和键盘。那么抽象工厂的实现类(它的某个具体子类)的对象都可以生产鼠标和键盘,但可能工厂A生产的是罗技的键盘和鼠标,工厂B是微软的。这样A和B就是工厂,对应于抽象工厂;每个工厂生产的鼠标和键盘就是产品,对应于工厂方法;用了工厂方法模式,你替换生成键盘的工厂方法,就可以把键盘从罗技换到微软。但是用了抽象工厂模式,你只要换家工厂,就可以同时替换鼠标和键盘一套。如果你要的产品有几十个,当然用抽象工厂模式一次替换全部最方便(这个工厂会替你用相应的工厂方法)所以说抽象工厂就像工厂,而工厂方法则像是工厂的一种产品生产线

y1pVitGLbpAD0wsOIF6Ty12ATio78AsprJE5g0b958Xj0Eas2pIeLZhsB3RyHNxbJURpQvlk9iCaBI.jpg (23.54 KB, 下载次数: 11)

y1pVitGLbpAD0wsOIF6Ty12ATio78AsprJE5g0b958Xj0Eas2pIeLZhsB3RyHNxbJURpQvlk9iCaBI.jpg





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2