gpt4 book ai didi

c# - 规范模式与扩展方法?

转载 作者:太空狗 更新时间:2023-10-29 21:10:45 25 4
gpt4 key购买 nike

我正在尝试掌握规范模式,对此我有点困惑。我真的找不到它对我的特定要求有帮助。我想知道如果我更喜欢复杂规范的扩展方法有什么问题?例如

public static class ProductExtensions
{
public static IQueryable<Product> InStocks(this IQueryable<Product> query)
{
return query.Where(p => p.InStock && !p.IsDeleted /*others goes here*/);
}
}

我发现用扩展方法包装我的长规范而不是使用规范模式很有帮助。这有什么问题吗?

最佳答案

您当前的方法没有任何问题。

当您处理可以任意应用的组合时,规范模式作为一个非常通用的概念是有意义的,因为它们表达了正交概念——即产品是微波炉,而且重量也小于 5 磅。

当您想对总是一起出现的某些条件进行分组时,扩展方法很有意义,即产品有库存,我们仍在提供它以形成更易于使用的抽象,即 InStock。扩展方法的其他用途是允许更“流畅”地组合您的最终查询,这是许多人喜欢的。

这两个概念并不相互排斥,无论您要表达什么,您都应该使用最易读的代码。

关于c# - 规范模式与扩展方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5505716/

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