论坛首页 Microsoft .Net版 工作

扩展方法与充血模型

浏览 1758 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2008-04-08
Quake Wang 写道
ray_linn 写道

你的模型还是题目上“充血模型”么??我不是要给我的团队用,我只是做一个Research而已。

扩展方法的好处比AspectJ好多了。打个比方:一个SNS系统,用户注册的时候,需要User.Regiser(),但注册之后,该用户还需要这个方法么?在用户时候的时候,在不同的Context添加各种业务逻辑。

例如在加入好友的时候,User.Regiser()可以剥离掉,而添加User.AddFriend(User u).

对于扩展方法,唯一要做的,就是引用正确的namespace!

在Java里面可以用mixin,可在用户注册模块,使得User这个Class拥有某个mixin的register方法

难得你发技术文章,竟然也发在海天版块,呵呵


呵呵。我想搞的就是LinQ和EM来实现充血模型,怕自己想得有偏差,所以才发出来让大家抨击一下。

我写了一个小小的User模型,一个缺点是扩展方法只能扩展出方法,而不能扩展静态方法,所以

User.ListAll()不得不写成User user=new User(), user.ListAll();

尽管利用LINQ可以很容易把CURD和Domain object写到一起,就可以改进上面的小缺陷,但是我还是想利用EM的灵活性。
   
0 请登录后投票
论坛首页 Microsoft .Net版 工作

跳转论坛:
JavaEye推荐