大家觉得哪种封装更好

     DuDu借首页一用。。。希望不要把这个贴移走了,我想知道下大家的想法如何。多谢了。

    小弟看到有的持久层框架是把实体类操作的接口放在每个实体类中,比如ActiveRecode。假设要对Order类型的实体对象和User类型实体对象进行修改操作,代码就像这么写:

None.gif     Order.Update(_orderObj);     // 假设前面已经声明一个Order类型对象_orderObj
None.gif
    User.Update(_userObj);    // 假设前面已经声明一个User类型对象_userObj

    而有的持久层框架是把操作接口放在一个公用的持久层类中,同样假设要对Order类型对象和User类型实体对象进性修改操作,代码就像这么写:

None.gif     DataProvider < Order > .Update(_orderObj);     // 假设前面已经声明一个Order类型对象_orderObj
None.gif
    DataProvider < User > .Update(_userObj);     // 假设前面已经声明一个User类型对象_userObj

    我个人认为把操作放在实体类里代码可以更直观,但是感觉又有些职责越界了,似乎类似这些操作不是实体类应该具有的。但是又很难下一个定论,不知道博客园的各位大哥是怎么认为的。希望听听大家的意见。

    另外从上篇帖子《轻量级持久层框架的讨论》各位大哥的踊跃发言让我对我的持久层框架又有了新想法。

    henry兄提出可以用CodeDom代替反射以提高效率,并且附上了他的文章《利用CodeDom来解决反射性能问题》,从中我获得了一些灵感。我可以使用CodeDom把用于动态生成Sql语句与为实体对象赋值的代码生成在内存中,这样我就可以抽象出一个通用的DataProvider并且又不会因为使用反射而影响系统整体执行效率。关于这一点大家有什么看法和意见也可以继续提出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值