2010-06-16 70 views
2

我一直在做ASP.NET多年,現在正在追趕MVC和DDD。我理解大部分概念。我正在重新開發一個適合體育網站的網站。它本質上是一個CRUD風格的應用程序,但爲了學習和靈活性目的而想要DDD。儘管我可以看到速度的好處,但選擇不做CQRS,因爲這看起來過於誇張。我對格雷格楊和其他人非常關注,但是它的選擇幾乎是壓倒性的,並且沒有嘗試解決問題。哪些是這個DDD應用程序中的聚合?

我曾想過的域對象是:

季節,夾具,團隊,Gamesheet,競爭,CompetitionRound,新聞,新聞分類

可能聚集是:

  • 賽季

  • Fixture HAS HomeTeam

  • 夾具 HAS AwayTeam
  • 夾具 HAS Gamesheet
  • 夾具名單CompetitionRound (可能是聯賽和杯賽的比賽)
  • 夾具 HAS 賽季
  • 夾具 HAS 新聞

  • 新聞 HAS 新聞分類

  • GameSheet HAS 夾具

  • 畫廊 HAS 夾具

請注意,夾具和gamesheet是雙向的,這是正確的?我知道它會起作用,但有沒有更好的方法?我需要自己顯示遊戲紙以及裝置。否則,我可以做FixtureRepo.GetBySeason(賽季)。[0]。遊戲紙等。

在此先感謝您的任何意見。

+0

什麼現實世界的事物或概念是「夾具」應該體現?這是一個相當模糊的名字 - 或者這是一個實體概念的替代術語嗎?我首先假設了表示繼承的箭頭,但這與GameSheet中的「雙向」事情分不開。你能進一步解釋嗎? – Jay 2010-06-16 15:42:21

+0

對不起 - >意思是關係。夾具是要玩的比賽或比賽。在這種情況下,它爲冰球隊,所以它會有像「FaceOff」(日期時間) – user203538 2010-06-16 16:01:29

+0

任何想法的人? – user203538 2010-06-17 08:05:39

回答

0

我擔心的是,如果我只想獲得gamesheets,如果我不直接讓他們這麼說,像GameSheetRepo.GetBySeason(賽季)我將不得不做FixtureRepo.GetBySeason,然後檢查,看是否有gamesheet對於每一個燈具都存在......這樣做似乎很不起眼。但我看不到反正你能避免則具有雙向參考作爲GameSheet需要知道它的燈具..但在Sametime如果我有一個夾具我想知道,如果一個gamesheet有時存在

問題是 - 是否有意義W/O遊戲手冊在您的模型?

GameSheet被刪除時應該刪除Fixtures?

如果他們不應該被刪除 - 可能性是GameSheet是一個聚合根,它持有Fixtures,你不需要雙向關聯,因爲你永遠不會使用沒有GameSheet的fixture來操作,所以Fixtures被創建/修改/僅通過GameSheet刪除。

如果GameSheet原來是一個聚合根,但您需要顯示燈具列表(這種類型需要引入雙向關聯),不要因爲表示目的而混淆您的模型 - 只需選擇GameSheets得到任何Fixture`s,選擇它們,如果需要排序並顯示。


但是過濾掉我剛剛說的話。
真的很難幫助某人而不知道實際的域名,我可能完全誤解了你。

+0

夾具會先到。由於每個賽季你會說40個裝置,並隨着賽季的進展,你有一個遊戲板添加(一旦 夾具已被播放,是一個結果) – user203538 2010-07-02 16:09:03