我希望我的模型有一个具有特定长度的子项列表,是否可以在模型中设置长度,“DDD样式”?
一个例子是一副有52张牌的纸牌。
public class Deck
{
List<Card> Cards { get; set; }
}
提前致谢
答案 0 :(得分:3)
我认为您需要在Deck
类中实现此自定义限制,而不是将List<Card>
公开为公共成员:
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();
{
...
}
....
}
答案 1 :(得分:2)
如果您知道牌组总是有52张牌,那么为什么不制作一个固定大小的阵列?最终,如果合作者打开甲板进行修改,那么您可能希望执行其他答案中提到的内容,并在您的班级中提供一些保护Deck
对象的保护措施。如果Deck
模型的卡片阵列/列表对外是只读的,那么我就支持阵列的想法。