gpt4 book ai didi

c# - 使用规范模式

转载 作者:行者123 更新时间:2023-11-30 18:49:29 24 4
gpt4 key购买 nike

与任何设计模式一样,Specification Pattern是一个伟大的概念,但容易被急切的架构师/开发人员过度使用。

我即将开始开发一个新的应用程序(.NET 和 C#)并且非常喜欢规范模式的概念并且渴望充分利用它。然而,在我全力以赴之前,我真的很想知道是否有人可以分享使用 Specification Pattern 时遇到的痛点。在开发应用程序时。

理想情况下,我正在查看其他人是否在

  • 根据规范模式编写单元测试
  • 决定规范应该存在于哪一层(存储库、服务、域等)
  • 当一个简单的 if 语句就可以完成工作时,到处使用它
  • 等等?

提前致谢

最佳答案

我不认为 LINQ 可以替代规范模式。请记住,规范最好用于封装业务逻辑。因此,如果我的业务需求之一让我获得所有重要客户的多项功能,我的 Linq 语句可能如下所示:

var valuedCustomers = Customers.Where(c => c.Orders.Count > 15 && c.Active).ToList();

我可以在整个应用程序中键入此声明,但如果我想附加到客户必须在某个日期之前加入的规则怎么办?好吧,现在我必须遍历我的应用程序并更改 Linq。或者如果我的对象图发生变化(尽管这不应该是使用该模式的唯一原因)。相反,我什么时候可以做这样的事情

var valuedCustomers = Customers.Where(new ValuedCustomerRule.IsSatisfied()).ToList();

我同意该模式已被过度使用,但它对出现在整个系统中的业务规则非常有帮助,这样您就不会在这些规则发生变化时受到影响。对我来说,这类似于在您的应用程序代码中保留 SQL 查询。

关于c# - 使用规范模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2506426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com