我目前正在設計我的應用程序的持久性框架......並且我正在討論抽象的兩種解決方案。什麼是數據層的正確抽象數量?
選項1.第一,和更簡單的(但可能更耦合到所述數據庫是2分層的方法。在這種方法中,數據映射器拉來自數據庫的數據,並建立業務實體。
粗糙圖工作流程:
UserEntity <= UserMapper => Database
選項2第二個,更靈活(但可能矯枉過正)的方法是一個3層的方法在這種方法中,我們有第三個對象是誰的工作是單獨說話。數據庫,並返回一個將數據遺留給Data Mapper,然後Data Mapper創建一個對象。
粗糙圖:
UserEntity <= UserMapper <= UserDataRetriever => Database
顯然,第一種方案的好處是,它更簡單,因此更快地創建。第二個選項的好處是更換我的持久性方法更容易,因爲我只需要將DataRetriever的連接更改爲DB(以及相關的查詢)。
由於本網站的規模將快速增長,因此我想選擇最靈活的選項,而不必進入反模式的土地。
哪個更好?
感謝您的迴應 - 在這種情況下,回購知道要講瓦特/分貝?它是一組爲每個實體構建的類嗎?我會自己研究更多... – johnnietheblack 2012-03-15 16:23:54
這是一組爲每個根建立的類,它是聚集。即一個用於Order + OrderLines + OrderHistory等。 – jgauffin 2012-03-15 18:28:52