规范模式是否已过时

规范模式是否已过时

本文介绍了当您可以使用动态LINQ时,规范模式是否已过时?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

维基百科指出,规范模式是可以通过链接业务逻辑来重新组合业务逻辑的地方一起使用布尔逻辑.关于从列表或集合中选择过滤对象,在我看来Dynamic LINQ使我可以完成同样的事情.我想念什么吗?规范模式还应该考虑其他好处吗?

Wikipedia states that the Specification Pattern is where business logic can be recombined by chaining the business logic together using boolean logic. With respect to selecting filtering objects from lists or collections it seems to me that Dynamic LINQ allows me to accomplish the same thing. Am I missing something? Are there other benefits to the Specification Pattern that should be considered as well?

我发现了一些讨论将LINQ和规范模式结合起来的帖子:

I've found some posts that discuss combining LINQ and the Specification Pattern:

Linq规范项目

由Nicloas Blumhardt(花花公子)通过Linq实施规范模式

有人走过这条路,维护起来变得复杂吗?

Has anyone gone done this road and did it become complicated to maintain?

推荐答案

动态LINQ使用字符串表达式来允许动态查询构造.因此,实际上我们确实失去了那里的类型安全性.而使用包装器模式(如与其紧密相关的化身的装饰器模式),规范模式,则可以使我们在代码中保持类型安全.我探索使用Decorator Pattern作为查询包装器,以便重用并动态构建查询.您可以在以下位置找到有关代码项目的文章: Linq查询包装器

Dynamic LINQ uses string expressions to allow the dynamic query construction. So we do in fact lose the type safety there. Whereas using wrapper patterns like the decorator pattern of it closely related incarnation, the specification pattern, allows us to maintain the type safety in code. I explore using the Decorator Pattern as query wrapper in order to reuse and dynamically build queries. You can find the article on code project at:Linq Query Wrappers

或者您可以查看我的博客.

这篇关于当您可以使用动态LINQ时,规范模式是否已过时?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 00:05