论坛首页 Java企业应用论坛

女友多的好处 (简单工厂模式)

浏览 8787 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (9) :: 隐藏帖 (17)
作者 正文
   发表时间:2009-12-08  
lz实现的是工厂模式中的简单工厂
0 请登录后投票
   发表时间:2009-12-08  
jasonw 写道
意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。

简单工厂有它的优点也有缺点,没有完美的单独的设计模式,只有完美的设计模式的组合,我在工厂方法模式中,已经将这两种模式进行了对比
0 请登录后投票
   发表时间:2009-12-09  
ysen 写道
jasonw 写道
意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。

简单工厂有它的优点也有缺点,没有完美的单独的设计模式,只有完美的设计模式的组合,我在工厂方法模式中,已经将这两种模式进行了对比


说个不好听的话,当DI加入JDK的时候,工厂还需要么?
0 请登录后投票
   发表时间:2009-12-09  
jasonw 写道
意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。


恩,我的理解是,简单工厂主要是将散布在各处的对象创建过程统一到一个类当中,试想有多个类中都要用到这些女友,万一需要修改某个女友的具体实现,就不需要在各处代码中修改,只要在工厂里修改具体的实现即可。

PS:DI本质上也是工厂啊,只是它们帮你实现了
0 请登录后投票
   发表时间:2009-12-09   最后修改:2009-12-09
grunt1223 写道
jasonw 写道
意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。


恩,我的理解是,简单工厂主要是将散布在各处的对象创建过程统一到一个类当中,试想有多个类中都要用到这些女友,万一需要修改某个女友的具体实现,就不需要在各处代码中修改,只要在工厂里修改具体的实现即可。

PS:DI本质上也是工厂啊,只是它们帮你实现了


呵呵,工厂可以帮助你管理那些对象么?工厂只帮你生成对象。
0 请登录后投票
   发表时间:2009-12-09  
treblesoftware 写道
grunt1223 写道
jasonw 写道
意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。


恩,我的理解是,简单工厂主要是将散布在各处的对象创建过程统一到一个类当中,试想有多个类中都要用到这些女友,万一需要修改某个女友的具体实现,就不需要在各处代码中修改,只要在工厂里修改具体的实现即可。

PS:DI本质上也是工厂啊,只是它们帮你实现了


呵呵,工厂可以帮助你管理那些对象么?工厂只帮你生成对象。

管理对象spring不错
0 请登录后投票
   发表时间:2009-12-09  
我一直对工厂模式没有一个好的理解,它的意思何在?
小弟经验不太足,望高手给个好的答案,最好举个例子哈!
0 请登录后投票
   发表时间:2009-12-09  
zhao_xiao_dong 写道
我一直对工厂模式没有一个好的理解,它的意思何在?
小弟经验不太足,望高手给个好的答案,最好举个例子哈!


如果你代码到处使用new A();
此时,如果你的对象不叫A,叫A2。
那么,这个时候你的代码里只要有new A();的地方都修要修改成new A2();这样一来,你要修改很多地方,当然,现在IDE一般支持自动重构,设计模式是很多年前的东西了,那个时候没有这么聪明的IDE。另外,普通工厂作用不大,更多是面向接口的,或者是抽象的。
0 请登录后投票
   发表时间:2009-12-10  
话说起来JAVA7怎么有点像C#了,支持string的switch了。。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics