[MDP.Net] 模組架構(gòu)
MDP.Net遵循三層式架構(gòu),將模組開發(fā)切割為:系統(tǒng)展示、領(lǐng)域邏輯、資料存取三個分層,減少模組對於元件、平臺、框架的直接依賴,提高模組自身的內(nèi)聚力。
- 系統(tǒng)展示(Presentation):與目標(biāo)客戶互動、與遠(yuǎn)端系統(tǒng)通訊...等等的功能邏輯,會被歸類在系統(tǒng)展示。例如,使用MessageBox通知使用者處理結(jié)果、提供API給遠(yuǎn)端系統(tǒng)使用。
- 領(lǐng)域邏輯(Domain):封裝商業(yè)知識的物件、流程、演算法...等等的功能邏輯,會被歸類在領(lǐng)域邏輯。例如,出勤系統(tǒng)的刷卡記錄物件、購物商城的折購計算規(guī)則。
- 資料存取(Accesses):資料庫的新增修改、遠(yuǎn)端服務(wù)的呼叫調(diào)用...等等的功能邏輯,會被歸類在資料存取。例如,將資料存放到SQL Server、或者是從遠(yuǎn)端API取得資料。
MDP.Net的模組程式遵循此分層,將每個模組拆解為三個專案,依序命名為:
- Module001.csproj:領(lǐng)域邏輯專案。
- Module001.WebAPI.csproj:系統(tǒng)展示專案。
- Module001.Accesses.csproj:資料存取專案。
而在MDP.Net的領(lǐng)域邏輯(Domain)裡,也加入了下列設(shè)計,來進(jìn)一步提升程式開發(fā)速度。
- Entity:DDD領(lǐng)域模型的實例物件(Class),用以定義資料物件的物件屬性,並可以封裝商業(yè)邏輯成為物件方法。
- Repository:資料庫存取的邊界介面(Interface),用來定義實例物件(Entity)進(jìn)出資料庫的介面方法。
- Provider:遠(yuǎn)端系統(tǒng)調(diào)用的邊界介面(Interface),用來定義實例物件(Entity)進(jìn)出遠(yuǎn)端系統(tǒng)的介面方法。
- Service:商業(yè)知識的流程即演算法的封裝物件(Class),封裝商業(yè)邏輯成為物件方法。也可以設(shè)計為邊界介面(Interface),將商業(yè)邏輯用實做注入的方式使用。
- Context:做為模組入口的根物件(Class),遵循Facade Pattern設(shè)計的原則,將上述四種物件與介面進(jìn)行收整。除了做為模組被註冊、注入、使用的根物件之外,也可以封裝商業(yè)邏輯成為物件方法。

期許自己~
能以更簡潔的文字與程式碼,傳達(dá)出程式設(shè)計背後的精神。
真正做到「以形寫神」的境界。

浙公網(wǎng)安備 33010602011771號