发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

PicoContainer疑惑:又一个反模式

    
2004-12-13 14:15
赞助商链接

PicoContainer似乎简单,用活了象遭罪,Ioc容器改变了很多以往编程习惯。

我在我的程序中使用了很多registerComponentInstance(Object key, Object componentInstance),但是不小心看到作者的又一个大声吆喝,这是反模式的。

http://www.picocontainer.org/Instance+Registration

我有些不明白了,我看到很多著名开源代码都是这么做的,特别是Jetspeed2 echo等几个开源,不知有谁清楚?

2004-12-13 16:45

我明白,是我理解有误,如果直接注册实例,那么相当于没有使用Ioc的依赖寻找,应该注册Class。

2004-12-13 16:52

其实模式与反模式是相互交杂,相互融合的,有时也随着人的理解而改变,用好了,自然就是OO的高手,用差了,呵呵,也就成了反模式的典型。其实反模式的概念和目的也就是希望人不要犯经验主义,其实很多人学习模式,最大的用途就是去套模式,发现一个问题,根本不去探讨和理解问题的实在,就只是看套哪个模式更加合适。当经验永远都只是照搬,而不是理解用活的时候,反模式自然就出来了。

2004-12-13 16:56

一般说来,在一个系统中用到了某些模式,绝对是正常的事情,也包括被许多人嗤之以鼻的singleton,factory method。但是,在一个系统大量的使用同一类模式,呵呵,一般说来就有问题了,因为有套模式的嫌疑。
所以,有很多人说做设计其实好简单,套模式就是,把23个设计模式背熟了,也就是像过去“学好数理化,走遍天下全不怕”一样。
只是很多人不理解,为什么要用这个模式,用它有什么问题和好处,而不用它又有什么问题和好处,能不能用其他的,是否根据环境和实际情况进行了修改。
当可以把上面的问题非常自信而又清晰的解析清楚的时候,那么,他就是一个不错的设计人员了。

2004-12-13 19:54

这段见解非常精辟。

我理解作者提出那种写法是反模式,他的意思是:你已经在使用某种模式,各个部分学得很象,但是实际你并没有真正利用该模式的优点,所以也称为反模式或非模式,这种情况经常存在。

在一个系统中用到了某些模式,绝对是正常的事情,怕就怕东施效颦,这种也就反模式,或者说是伪模式。

设计模式     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系反馈 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com