首页 新闻 搜索 专区 学院

问一个三层架构问题

0
悬赏园豆:5 [已解决问题] 解决于 2011-04-27 07:05

我有有个问题 在前台绑定数据 用dataset还是用list<Model> 好 在维护系统过程中,经常要给Model加一些属性,在三层中结构的系统中 增加一个要去属性 model层修改,还要去bll层修改 前台逻辑也要去修改 怎么感觉如果放弃model层 用datarow来代替会更好呢??用datarow 来代替一个对象的话,如果数据库视增加一个数据列,我直接可以在前台逻辑就可以使用这个新增加的数据列,免去了model层的修改与bll层的修改,大家在实际的项目有没有感觉到呢??

lichaoxyz的主页 lichaoxyz | 初学一级 | 园豆:195
提问于:2011-03-06 10:29
< >
分享
最佳答案
0

1 强类型弱类型的问题

如果是List<Model>则为强类型的,DataRow则为弱类型的

简单的说,就是Model的属性你可以"."出来,DataRow你"."不出来

2 扩展性的问题,Model既可以当成数据的载体,还可以当成领域模型,如果是从领域设计入手的话,你会发现Model的应用范围比DataRow大很多。

Model还可以设计成为充血,贫血等各种各样的,而DataRow则就是一个数据载体,不具有其它功能

很久以前就有达人告诉过我们DataSet,DataTable这种东西是反面向对象的,Model才是面向对象的体现。

 

当然面向对象无所谓,只要能解决问题就好。

但是在复杂的系统中,由于Model的面向对象特性,更容易解决业务问题,所以一般我们做成Model,而不是DataRow。

 

3 Model最大的坏处就是Model和DB之间的转换,这也是ORM出现的原因,这个远没有靠拢数据库的DataRow直接和方便了。

收获园豆:5
xiao_p | 小虾三级 |园豆:608 | 2011-03-07 09:35
其他回答(1)
0

这个model层就是为了面向对象的思想的编写方便或快速开发而设计。

如果你用datarow的话每个字段key不得一个一个字母敲吗,而且不能保证敲对,编译时还不能知道是否有错误,而且如果字段变了那么要牵连所有的相关都要一个一个修改。

当然了,小项目就不讲究这个了

慧☆星 | 园豆:5555 (大侠五级) | 2011-03-06 20:02
其实还有一点愿意,List的便利速度要比datatable快,占用的内存要比datatable小
支持(0) 反对(0) lichaoxyz | 园豆:195 (初学一级) | 2011-03-06 20:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册