ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# – 集合过滤逻辑应该放在域驱动的应用程序中?

2019-06-26 04:52:20  阅读:108  来源: 互联网

标签:c domain-driven-design


我有以下基本实体:

public class Basket
{
    public List<Product> Products {get;set;}
}

public class Product
{
    public string Name {get;set;}
    public decimal Price {get;set;}
}

我想得到一个低于固定价格的篮子里的所有产品清单.这个逻辑是否应该进入篮子,如下:

public class Basket
{
    public List<Product> Products {get;set;}
    public List<Product> CheapProducts
    {
        get { return Products.Where(p => p.Price < 5).ToList(); }
    }
}

或者它应该放在服务类ProductFilterer中,它会将整个产品列表作为参数,并返回过滤的产品列表.或者它应该直接进入调用类的方法?

或者是其他东西?这是什么最好的做法?

解决方法:

如果“廉价产品”的概念是一流的领域概念并且必须以无处不在的语言引入,那么我要做的就是与领域专家见面.

如果是这种情况,史蒂夫的规范解决方案将以优雅的方式解决您的问题.

如果廉价不重要或没有明确定义(例如,如果廉价阈值在整个应用程序中变化),我不打算为它创建一个特定的实体,只需在调用代码时根据需要过滤具有相关标准的Basket.Products .

标签:c,domain-driven-design
来源: https://codeday.me/bug/20190626/1290292.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有