锁定老帖子 主题:女友多的好处 (简单工厂模式)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (9) :: 隐藏帖 (17)
|
|
---|---|
作者 | 正文 |
发表时间:2009-12-08
lz实现的是工厂模式中的简单工厂
|
|
返回顶楼 | |
发表时间:2009-12-08
jasonw 写道 意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。 简单工厂有它的优点也有缺点,没有完美的单独的设计模式,只有完美的设计模式的组合,我在工厂方法模式中,已经将这两种模式进行了对比 |
|
返回顶楼 | |
发表时间:2009-12-09
ysen 写道 jasonw 写道 意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。 简单工厂有它的优点也有缺点,没有完美的单独的设计模式,只有完美的设计模式的组合,我在工厂方法模式中,已经将这两种模式进行了对比 说个不好听的话,当DI加入JDK的时候,工厂还需要么? |
|
返回顶楼 | |
发表时间:2009-12-09
jasonw 写道 意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。 恩,我的理解是,简单工厂主要是将散布在各处的对象创建过程统一到一个类当中,试想有多个类中都要用到这些女友,万一需要修改某个女友的具体实现,就不需要在各处代码中修改,只要在工厂里修改具体的实现即可。 PS:DI本质上也是工厂啊,只是它们帮你实现了 |
|
返回顶楼 | |
发表时间:2009-12-09
最后修改:2009-12-09
grunt1223 写道 jasonw 写道 意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。 恩,我的理解是,简单工厂主要是将散布在各处的对象创建过程统一到一个类当中,试想有多个类中都要用到这些女友,万一需要修改某个女友的具体实现,就不需要在各处代码中修改,只要在工厂里修改具体的实现即可。 PS:DI本质上也是工厂啊,只是它们帮你实现了 呵呵,工厂可以帮助你管理那些对象么?工厂只帮你生成对象。 |
|
返回顶楼 | |
发表时间:2009-12-09
treblesoftware 写道 grunt1223 写道 jasonw 写道 意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。 恩,我的理解是,简单工厂主要是将散布在各处的对象创建过程统一到一个类当中,试想有多个类中都要用到这些女友,万一需要修改某个女友的具体实现,就不需要在各处代码中修改,只要在工厂里修改具体的实现即可。 PS:DI本质上也是工厂啊,只是它们帮你实现了 呵呵,工厂可以帮助你管理那些对象么?工厂只帮你生成对象。 管理对象spring不错 |
|
返回顶楼 | |
发表时间:2009-12-09
我一直对工厂模式没有一个好的理解,它的意思何在?
小弟经验不太足,望高手给个好的答案,最好举个例子哈! |
|
返回顶楼 | |
发表时间:2009-12-09
zhao_xiao_dong 写道 我一直对工厂模式没有一个好的理解,它的意思何在?
小弟经验不太足,望高手给个好的答案,最好举个例子哈! 如果你代码到处使用new A(); 此时,如果你的对象不叫A,叫A2。 那么,这个时候你的代码里只要有new A();的地方都修要修改成new A2();这样一来,你要修改很多地方,当然,现在IDE一般支持自动重构,设计模式是很多年前的东西了,那个时候没有这么聪明的IDE。另外,普通工厂作用不大,更多是面向接口的,或者是抽象的。 |
|
返回顶楼 | |
发表时间:2009-12-10
话说起来JAVA7怎么有点像C#了,支持string的switch了。。
|
|
返回顶楼 | |