c# - 是否可以拥有一个包含特定长度子项列表的模型对象?

标签 c# domain-driven-design

我希望我的模型有一个特定长度的子项列表,是否可以在模型中设置长度,“DDD 样式”?

一个例子是一副有 52 张牌的纸牌。

public class Deck
{
    List<Card> Cards { get; set; } 
}

提前致谢

最佳答案

我认为您需要在 Deck 中实现此自定义限制类而不公开 List<Card>作为公共(public)成员:

public class Deck
{
    private List<Card> cards;

    public Deck()
    {
        cards = new List<Card>();
    }

    public void Add(Card card)
    {
        if (cards.Count == 52)
        { 
            throw new TooManyCardsException();
        }
        cards.Add(card);
    }

    public void Remove();
    {
        ...
    }

    ....
}

关于c# - 是否可以拥有一个包含特定长度子项列表的模型对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21718347/

相关文章:

java - 解耦模型和输入检查

java - 领域驱动设计依赖于静态方法?

asp.net-mvc - 洋葱架构 - 存储库与服务?

c# - 如何测试表达式是否短路

C# 打开每个文本文件并读取所有文本问题

c# - 如何使用 Asp.NET Web Api 检测高 CPU 和长响应时间问题

c# - 我应该如何在 C# 中实现我的存储库 (DDD) 以处理对同一聚合根的多个调用

java - 层间通信装饰器

c# - 如何将数据绑定(bind)文本框格式化为百分比?

javascript - Bootbox确认: return client result in order to do postback to rowCommand