我想通過它實現了一個接口來訪問我聚合根:CommonDomain/EventStore接口擷取
repository.GetById[[IMyInterface]](id);
什麼我需要告訴CommonDomain或EventStore做到這一點?我相信我的IConstructAggregates收到執行存儲事件的聚合類型。我需要保留自己的ID的地圖嗎?
例如,說我有這總比分根:
class AggRoot1 : IInterface1, IInterface2 {}
class AggRoot2 : IInterface1, IInterface2 {}
我已經保存有 'idFromAggRoot1' 的aggregate1實例。 現在我要像這樣獲取:
repository.GetById<IInterface1>(idFromAggRoot1);
我怎樣才能知道我應該創建以後,因爲有IInterface1兩個執行者? AggRoot1? AggRoot2? IInterface1? Activator會在這裏炸彈,所以我知道我需要實現IConstructAggregates,但不知道是否有其他描述符告訴我原始提交agg根類型是什麼。
請給我解釋之實踐使用這樣的結構是什麼?你是否在思考「角色」? –
剛剛看到這一點 - 實際使用是編寫接口在我的總根,而不需要客戶端知道它正在執行的實際實現。 – SonOfNun
我承認解耦可能是一件好事,但是你能給出一個兩個聚合根類型的例子來實現相同的接口但不共享相同的實現嗎? –