我希望我的模型有一個特定長度的兒童列表,是否可以在模型中設置長度「DDD樣式」?是否有可能擁有一個帶有特定長度子項列表的模型對象?
一個例子是一副有52張牌的牌。
public class Deck
{
List<Card> Cards { get; set; }
}
在此先感謝
我希望我的模型有一個特定長度的兒童列表,是否可以在模型中設置長度「DDD樣式」?是否有可能擁有一個帶有特定長度子項列表的模型對象?
一個例子是一副有52張牌的牌。
public class Deck
{
List<Card> Cards { get; set; }
}
在此先感謝
我想你需要的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();
{
...
}
....
}
假設有一個理由使用列表
好點;這一切都取決於設計。其中一個哲學是你拋出一個異常,然後處理它,比如UI層,並且說「糟糕,不能添加另一張卡片!」;另一種方法是按照你的說法返回一個布爾值。那麼線下的其他層必須知道如何處理成功/返回值。異常方法在這裏可能會過度,同意;在大型多層/多級系統中,例如可以從另一個DLL拋出異常,並且需要在更靠近用戶可能位置的更高層或者初級程序員處理時,它更合適。 –
是的優點。正如你所說的,這關乎誰來處理它,誰需要知道它是如何處理的。 – mckeejm
也許這有助於http://stackoverflow.com/questions/677278/limit-the-size-of-listof-t-vb-net – V4Vendetta