記錄事件目前,我有這樣的結構:放置位置信息,並使用POEAA
Domain Model <---> Data Mapper ---> Database
說我加一個孩子「文件」對象的「項目」對象。我想爲該項目自動創建一個表示更新的子註釋對象。現在,這個註釋的創建由'項目文件映射器'處理 - 在'uploadFile'方法中,新的註釋被實例化和填充,並且調用「註釋映射器」來保存該註釋。該項目在詢問其子女筆記時調用筆記映射器,以此類推文件。
或者說我刪除了一個'project'對象 - 我想刪除子註釋和文件,所以在'projectProperty'方法'deleteProject'中,調用'projectNoteMapper'和'projectFileMapper '來處理刪除這些文件。
我現在開始遇到其他情況,特別是自實施私人消息系統以來。我希望用戶能夠訂閱項目和票據並接收有關更新的消息。我也想要實現用戶行爲的深層日誌記錄(包括存儲序列化對象以用於製表)。
我明白我一直在做事情的方式不符合「單一責任原則」 - 畢竟,映射器的目的只應該是在數據源和它們各自的對象之間映射信息,對嗎?我的問題是 - 我應該實施的下一個'圖層'是什麼,我錯過了什麼?我已經閱讀了「倉庫」和「服務」。
感謝您的回覆。 當談到項目和項目文件的映射器時,每個都使用多個「資源」 - 即多個表,或者在項目文件,系統目錄以及數據庫表的情況下。出於這個原因(兩個對象之間的顯着差異),我覺得他們都應該擁有自己的映射器。然後,這個問題正在協調... ...和您發佈的鏈接(我也有這本書)似乎服務層就是這樣。發佈這個問題之後,我已經開始實施這個模式,並且這很好。謝謝 – tuespetre 2012-03-25 15:54:04