论坛首页 Java企业应用论坛

基础知识: 需求!

浏览 110177 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-08-23  
说白了,potian认为真空都不是透明的,光子对光子也有影响。所以ajoo的透明也只是一种某种程度上的透明。走逻辑证明就必须纯粹而纯粹。是不是这个意思?
0 请登录后投票
   发表时间:2004-08-23  
ajoo 写道

其实, 重构成singleton是一个重构, 从singleton重构成非singleton也是一个。这个情况我想应该更为常见。比如:开始的时候我的类X很简单, 没有状态, 所以为了效率优化, 我选择了singleton。 也许某天重构的时候我发现加入一个状态也许更好, 此时, 再用singleton就不行了。但是因为有instance()函数,我就可以自由地把singleton去掉。外界可以保持一无所知。



因为重构前后返回的对象有着这么大的区别。在实际情况中,外界不可能对这种重构保持一无所知。
我估计返回的那个接口类型的接口就要变化。否则,外界怎么来区分新添加进去的那个状态?如果原先的接口可以继续顶用,那么重构前的那个singlton的做法和这个接口就是一个自相矛盾的建模错误。
从singlton到非singlton,语义上是不同的。
而且,谈到语义,所谓的重构语义不变性这个说法还是不够严谨。存在的只是可观测语义的不变性。从singlton重构到非singlton,可观测语义不变的可能性等于0。从非singlton到singlton,倒是可能。
0 请登录后投票
   发表时间:2004-08-23  
ozzzzzz,我不理解你的意思,我的意思firebody和logo,charon再三陈述了

从纯粹理论的角度来讲,要对多个应用程序透明,除非=new

至于实用中如何,一开始我就说了,可以在有限的场合实用,不适合大规模推广
0 请登录后投票
   发表时间:2004-08-23  
我觉得大家有必要讨论一下什么是语义。我判断大家说得都不是一回事情。
还有那个透明,大家的意思也都不一样。看来得把gigix勾引进来。
haha
0 请登录后投票
   发表时间:2004-08-23  
ajoo 写道
啊。刚才还在说你开始不是很清楚我的“透明”的含义。现在又说你一直都在证明“透明”的不存在。好象从来没有过误解一样。

potian啊。我不是很有兴趣和你争辩下去了。你的别人一仔细解释你就飘然退出的风格让我不大容易适应。有点象中国男篮和意大利男篮,我看还是算了吧。

其实,无论如何,如果采用你所说的方法实施项目,随着项目进展,一定会跟OO的一些基本概念项抵触的。而且也会带来很大的问题。这就是potian以及我们所共识的。
但是基于灵活以及效率,在一定范围内采用你所说的静态工厂,确实带来一些稳定,高效的做法。
potian是对OO有很深了解的人,可能正因为这点,他不能容忍你的这种破坏OO的方法吧!!!
我们一般总喜欢在两端之间插入一层中间层,而尽可能保证两端的简单。中间层就是我们可以随意扩展的。而如果象ajoo你说的将含有比较复杂逻辑的instance替代原本简单的构造器,这就等于让两端都复杂,而让中间层尽量简单。这是我们所不能接收的!!
potian是个很认真的人,ajoo也是一个很学术的人,你们两个互相推一步好了,情不要再吵了!!谢谢你们的讨论
0 请登录后投票
   发表时间:2004-08-23  
potian
我的意思就是纯粹的透明根本就不可能存在,我以为我是理解了你的意思,也就是最后只是一个new。
另大家注意讨论的友善性,不要过于使用容易让人误解的字眼,无关的话能不说就不说。我给大家删除这些东西是很累的。
0 请登录后投票
   发表时间:2004-08-23  
oz6,而据我对ajoo的理解,他的意思是,当这个类内部的实现完全可以有自己负责,也就是不是因为外部程序发生需求而改变实现,是因为自己这个类凭空觉得可以更改具体实现(我不知道为什么自己在没有任何外界驱动的时候需要改变代码,可能有,那也是极其少的,即使有,对象基本的封装就是为了这一点,如果是重构的话,本来就是对外部不可见地,不需要额外的设施来保证这一点),不知道我的理解又没有错
0 请登录后投票
   发表时间:2004-08-23  
charon 写道
我觉得大家有必要讨论一下什么是语义。我判断大家说得都不是一回事情。
还有那个透明,大家的意思也都不一样。看来得把gigix勾引进来。
haha

哈哈
0 请登录后投票
   发表时间:2004-08-23  
potian
我也觉得ajoo的意思是把对象完全的当做一个黑盒来处理,也就是对象根本就不能被环境所影响改变。当然我觉得在道理上说这也没有什么问题,但是实际上实现起来代价太大了。没有耦合在我看来是不可能的。但愿我理解错了ajoo的意思。
0 请登录后投票
   发表时间:2004-08-23  
那么是不是可以这样来看这个问题

到底是外部需求改变需要类的内部实现发生改变的可能性大还是因为某些其它原因需要类发生内部变化的可能性大

并且在后者的前提下,是不是需要把这个类完全分派给其他类的实现(如果还是纯粹修改本类的话,new和instance是一样的)
0 请登录后投票
论坛首页 Java企业应用版

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