我想弄清楚設置此模型的最佳方法。我幾乎做到了這一點,但我正在考慮以另一種方式來做。這是一次學習經歷,所以浪費時間並不重要。對象模型,正確或最直觀的方法
namespace FirstWay
{
public class CrateOfBags
{
public string crateId { get; set; }
public string originCountry { get; set; }
public List<BagOfApples> bagList { get; set; }
}
public class BagOfApples
{
public double weight { get; set; }
public string bagId { get; set; }
public List<apple> appleList { get; set; }
}
public class apple
{
public string appleId { get; set; }
public string color { get; set; }
public Boolean rotten { get; set; }
}
}
//或者這
namespace SecondWay
{
public class CrateOfBags
{
public string crateId { get; set; }
public string originCountry { get; set; }
}
public class BagOfApples : CrateOfBags
{
public string bagId { get; set; }
public double weight { get; set; }
}
public class apple : BagOfApples
{
public string appleId {get;set;}
public string color { get; set; }
}
}
可能的問題
蘋果的問題: 多少爛蘋果交付? 哪個袋子和/或哪些箱子爛蘋果來自? 第一種方式:可以循環通過每個箱子,然後袋子,然後蘋果和計數。 第二種方式:只能通過蘋果循環,並將父項屬性添加到HashSet(一種避免重複的方法)
箱子問題。查找每個國家的箱子數量? 第一種方式:循環通過箱子,並保持一個計數列表,數組,不管。第二種方式:將不得不遍歷所有蘋果,只關心箱子。
我碰到的一個問題是我對蘋果作爲自己的實體知之甚少。我只知道它是從哪個箱子開始從板條箱的foreach循環
但是如果我想問一個問題,例如「有多少青蘋果在特定的批次中(通過ID)?」我也有問題取決於方式。
對我來說,說一個蘋果是一個袋子的孩子似乎很尷尬,就像一隻狗是動物的孩子。不過,我喜歡能夠自由移動操作蘋果的想法,比如只需通過更改父屬性bagid即可切換哪些包。我並不是在尋找特定問題的解決方案,只要其中一個更好(更靈活,更高效,更直觀),另一個更好,或者我完全錯過某些東西,比如使用其他技術。非常感謝。
P.S.這不是真正的模型,而是一個相當不錯的代表。
好的,謝謝。第一種方式看起來好嗎,還是有其他更好的方法?我對這條路線不滿意,因爲蘋果本身應該知道它的來源(如國家或批次)。例如,如果我想將蘋果放在一個大的儲存容器中乾燥,我應該能夠測量「乾燥速率「然後仍然找到原籍國。 – TheBigC 2013-02-20 23:04:54
你可以通過給蘋果一個BagOfApples的引用來解決這個問題。你的3個班級是一個有三個級別的樹,你想要的是父母使用列表鏈接到孩子,並使用對象引用鏈接到父母的孩子。這使得樹可以在任何方向上導航。不過,您必須小心保持鏈接的同步。 – usr 2013-02-20 23:46:33