假設我們有Foo作爲一個AggregateRoot。並且有一些通用的Foo s以及EnhancedFoo s帶有許多擴展屬性。是否可以在單個聚合根類上公開「操作」以獲得通用屬性和增強屬性,並通過驗證檢查來引發異常,如果在非增強對象上調用增強動作Foo對象?從技術上講,在這種情況下,AggregateRoot將爲所有支持的Foo類型聚合所有可能的「操作」?AggregateRoots如何聚合不同的對象類型?
顯然很大程度上取決於領域結構,但我認爲這種假設的情況是相當普遍的。可能是基本的問題,但我只是開始與聚合/根。每一次反饋
更新
比方說,我們有富作爲AggregateRoot。而且有通用富 S以及FlyableFoo S,SwimmableFoo S,等等。所以,總要「知道」所有可能的行爲(飛,嘎嘎,游泳),並適當地將其暴露在服務功能。如果有什麼被稱爲某些不被當前對象「支持」的原因,Aggregate可能會拋出一個異常「對不起,企鵝不能飛」。
從我的問題不清楚,但我實際上使用組合。反過來說,「屬性」我應該說「行爲」。我添加了更新到我的問題,請檢查。另外,感謝您提及「構成超越繼承」圖,這非常有幫助! – Tenek
@Tenek看到我更新的答案 –