精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-05
《domain model的延伸讨论》 http://www.iteye.com/topic/57075 1. ruby的代码中是domain model直接包含了操作集合的代码,java的理念则不是如此。用来比较优劣是否妥当暂且不说,首要的问题在于:domain model理念是哪个?是允许一个对象包含自己的集合操作还是不可以? 回到正题,既然是比较就要标准统一,表面上看都是同一个题目,其实背后的理念是不一样(由此引发的种种设计实现上的变化,robbin就得出了ruby可以做更多的逻辑,因而……), 2. robbin说:“但是Java如果不使用IoC方式注入,而是直接调用依赖类的静态方法,行为就被限定死了,复杂的类依赖关系的创建和织入就是一个很麻烦的问题,这也是Java引入IoC的主要原因。” 因此robbin说:“对于Java来说,更加适合采用贫血的模型,Java比较适合于把一个复杂的业务逻辑分离到n个小对象中去,每个小对象描述单一的职责,n个对象互相协作来表达一个复杂的业务逻辑,这n个对象之间的依赖和协作需要通过外部的容器例如IoC来显式的管理。但对于每个具体的对象来说,他们毫无疑问是贫血的。” 3. Java在AspectJ的支持下,可以对domain model的各个方面的逻辑进行切割,就像C#的partial class那样,一个应用就是 4.如果robbin的观点是:ruby和java在实践domain model理念中,因为ruby的语言特性及其设计理念比java的有自己的优势,那我认为没有什么问题。而现有观点太过草率和武断了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-05
说真的,为了做到ror似的充血模型,我非要再去专门学下AspectJ,这不正说明了robbin的结论:
Java不适合充血模型,在表达复杂的业务逻辑的能力上,Java要比ruby差很多 |
|
返回顶楼 | |
发表时间:2007-03-05
从ruby到ror不需要学习吗?
我们的观点分歧在于:你认为ruby->ror的学习都是必要的,而java只要学习语言,此外的IoC和AspectJ都是额外的。问题是:真是这样吗? 此外aspectj带来的收益可不只是类似,而是超越ror |
|
返回顶楼 | |
发表时间:2007-03-05
有时候讨论太学术话了一点了,怎么用实用,怎么用大家都容易理解,怎么用节省时间就怎么用,不是说怎么用理论上更oo就怎么用,如何如何,如同用hibernate一样,有的人总是嚷嚷如何如何oo才是真正的用好了hibernate,说这种话的人不是菜鸟就是大牛,夹杂在中间的人追求的是实用
|
|
返回顶楼 | |
发表时间:2007-03-06
我感觉Robbin的原文, 表面是
Ruby vs Java 实则 RoR.ActiveRecord vs ORM.Hibernate 比较的是两种语言的主流Paradigm, 而不是语言本身的全部能力. |
|
返回顶楼 | |
发表时间:2007-03-06
complystill 写道 我感觉Robbin的原文, 表面是
基本上同意!
Ruby vs Java 实则 RoR.ActiveRecord vs ORM.Hibernate 比较的是两种语言的主流Paradigm, 而不是语言本身的全部能力. 而且我本人对于ActivieRecord是否可以是Domain Model保留质疑,或许ROR下可以这么做吧! 当然里面还涉及的对象关系逻辑的处理,就引出了IoC和AspectJ,我今天才看到那个《为什么java里不能把域对象和DAO合并,rails里面就可以? 》(http://www.iteye.com/topic/56949),我估计robbin应该就是从这个帖子发起其讨论的。 |
|
返回顶楼 | |
浏览 7060 次