论坛首页 编程语言技术论坛

用ActiveRecord能否完美的匹配DomainModel?

浏览 6780 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-16  
用ActiveRecord能否完美的匹配DomainModel,对此我有些疑问,你有何感想?

看看老马的定义:

引用
Active Record
An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data.


该定义表明Active Record是对于数据库某一个表或视图行的封装,也就是用数据行的方式来建立DomainModel,还是会有阻抗失配的情况吧......
   发表时间:2006-12-16  
partech 写道
用ActiveRecord能否完美的匹配DomainModel,对此我有些疑问,你有何感想?

看看老马的定义:

引用
Active Record
An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data.


该定义表明Active Record是对于数据库某一个表或视图行的封装,也就是用数据行的方式来建立DomainModel,还是会有阻抗失配的情况吧......


难道你看现在ror那些例子里边的Active Record Model像是某一个表或视图行的封装?
老马说的不是一码事吧
0 请登录后投票
   发表时间:2006-12-16  
yuxie 写道
难道你看现在ror那些例子里边的Active Record Model像是某一个表或视图行的封装?
老马说的不是一码事吧

好了,例如:在电信行业有很多客户受理单,订购商品单、移机单、拆机单,增购商品单。
我都把它们统统的放到CustomerOrder表中,你用ActiveRecord如何表示?主要是看看它如何处理复杂的类层次结构。
0 请登录后投票
   发表时间:2006-12-17  
partech 写道
yuxie 写道
难道你看现在ror那些例子里边的Active Record Model像是某一个表或视图行的封装?
老马说的不是一码事吧

好了,例如:在电信行业有很多客户受理单,订购商品单、移机单、拆机单,增购商品单。
我都把它们统统的放到CustomerOrder表中,你用ActiveRecord如何表示?主要是看看它如何处理复杂的类层次结构。


我理解partech兄的意思也许是:
光一个ActiveRecord不能完全表达DomainModel.
还有很多业务逻辑,不是用一个ActiveRecord就能搞定的.
0 请登录后投票
   发表时间:2006-12-18  
partech 写道
yuxie 写道
难道你看现在ror那些例子里边的Active Record Model像是某一个表或视图行的封装?
老马说的不是一码事吧

好了,例如:在电信行业有很多客户受理单,订购商品单、移机单、拆机单,增购商品单。
我都把它们统统的放到CustomerOrder表中,你用ActiveRecord如何表示?主要是看看它如何处理复杂的类层次结构。


受理单是parent class,订购商品单、移机单、拆机单,增购商品单是子类,请看ror里面的关于继承的用法,用的是单表继承。

不过我同意楼主的看法,很多情况Active Record是没有办法处理的,或者处理得不大好……
0 请登录后投票
   发表时间:2006-12-18  
除了单表继承某些情况下不一定适用以外,Active Record还是能满足大部分需求的吧。例外,单表继承不合适的情况,可以考虑用组合嘛。
0 请登录后投票
   发表时间:2006-12-18  
比如遗留系统,就算是很多现在的数据库也不是按照ActiveRecord形式弄得,比如我们公司用的聚源数据库……这样的系统,基本上没有可能用ActiveRecord的
0 请登录后投票
论坛首页 编程语言技术版

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