我需要一個描述行星系統的類的系統。C#:幫助設計嵌套類的結構
我第一類是atomary空間體:
public class SpaceBody
{
public string Name;
public float Mass;
// and so on
}
第二個是空間機構的系統,它也是SpaceBody:
public class SpaceBodySystem<ChildType>: SpaceBody where ChildType: SpaceBody, new()
{
// ...
public List<ChildType> Children;
// ...
}
接下來,我有一個明星:
public class Star: SpaceBodySystem<SpaceBody>
{
public float Intencity;
// ...
}
最後,整個明星系統是這樣的 (它可以hav Ë不止一星):
public class StarSystem: SpaceBodySystem<Star>
{
public bool OccupiedByAliens;
// ...
}
的問題是: 星星應該有這反過來,可能有他們的衛星的行星(SpaceBodySystem)和這些衛星也可以有自己的衛星等方面。嵌套深度是無限的。
這對我目前的班級制度來說是不可能的。 我必須寫這樣的東西,但這個醜陋的解決方案有限制的層次。
public class StarSystem: SpaceBodySystem<SpaceBodySystem<SpaceBodySystem<SpaceBody>>>
{
public float Intencity;
// ...
}
我問社區給我一些建議如何改善這種結構。 我想過其他方案(接口,組合+委派),並沒有設法得到一個可接受的解決方案。
非常感謝您的幫助。
這個問題似乎是題外話,因爲它需要一個代碼審查 - 嘗試codereview.stackexchange.com –
待辦事項BDD光想象,將使用此API一個人爲的開發。也許他們會自動化在發生系統間飛行的發電船。他的劇本會是什麼樣子? (發射船,出口太陽能系統,檢查船員是否還活着,如果死亡,返回家園,如果目的地不適宜居住,請轉到下一步)寫下該劇本,看看班級是否有助於或傷害該使用場景。 – MatthewMartin