首页 新闻 会员 周边 捐助

規約和表達式樹,效果一樣,不知道兩種實現有什麼不同特點需求嗎?

0
悬赏园豆:20 [已关闭问题] 关闭于 2015-03-20 18:04
         /// <summary>
        /// 通过指定规约,得到实体对象
        /// </summary>
        /// <param name="specification"></param>
        /// <returns></returns>
        TEntity GetEntity(ISpecification<TEntity> specification);

        /// <summary>
        /// 通用表达式树,得到实体
        /// </summary>
        /// <param name="predicate"></param>
        /// <returns></returns>
        TEntity GetEntity(Expression<Func<TEntity, bool>> predicate);
滴答的雨的主页 滴答的雨 | 老鸟四级 | 园豆:3660
提问于:2015-03-20 17:42
< >
分享
所有回答(1)
0

http://www.cnblogs.com/daxnet/archive/2010/07/19/1780764.html

57樓,60樓 已回復

 

@Colorful.MrC

引用一直以来都在关注你的博客,虽然说大都在潜水。看过你这篇规约模式之后有个疑问,当.NET出现了expression以后感觉在像这样去实现一个规约很鸡肋,and,not,or这一类的逻辑我基本可以放到expression当中比如:

在调用的时候我只要new Expression(u => u.Name == xxx && u.age == xxx);

呵呵,不知道我的想法对不对。


从技术上讲,当然不错。引入Specification的目的就是为了减小开发人员和业务(客户)人员之间的理解差异。Expression的概念在.NET的领域还是应用非常广泛的,但对于其它的企业级平台的实践而言,Expression的概念或许就不会被更多的人所接受,但只要大家都了解过DDD,就应该都能够理解Specification。

#60楼 2015-03-06 13:38 刘标才  
有了LINQ的拉姆达表达式,规约基本可以不需要了,项目中如果使用了规约复杂度增加,而且还很难用,没有拉姆达一句话来的直接,但是规约的好处是可解释性强,但话说回来,规约名称的可解释性在项目中又有多少作用好不知道

 

滴答的雨 | 园豆:3660 (老鸟四级) | 2015-03-20 18:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册