![](/img/trans.png)
[英]What is difference between a service Layer and Business Layer in N layered architecture
[英]Layered Architecture: Application and Infra Layer
我開始學習軟件體系結構,並且看到了一些使我感到困惑的分層體系結構實現。
一般而言,這些解決方案具有以下幾層:
我不確定:
如果有人可以回答我這些問題或向我推薦一些資源以了解更多信息,我將不勝感激。
感謝,並有一個愉快的一天! :)
表示層:顧名思義,該層的關注點就是用戶看到或與其交互的內容。 它包含UI邏輯,圖形,表單,圖像等。
域層:這是處理您的業務邏輯的地方。 如果您正在編寫Weblog,則此層包含對象和實體,如“帖子”,“用戶”,“評論”等。如果您正在編寫財務系統,則它們將是“帳本”,“帳戶”,“資金”等。系統中最有價值的代碼依賴於此,因為他們滿足了用戶的關注。
基礎結構層:從傳統意義上講,每個層都僅訪問基礎層,但是有時該層涵蓋了多層的問題。 因此,我懷疑您是否可以將其稱為經典意義上的一層 。 它包含應用程序范圍的抽象和基類,有時還涉及交叉問題等。
服務層: “ 處理域邏輯的一種常用方法是將域層分成兩部分。將服務層置於基礎域模型之上 ”,PoEAA,Martin Fowler。 就像馬丁·福勒(Martin Fowler)在他的書中說的那樣(我建議您閱讀本書),這是您網域之上的一層,可以使您對網域的使用更加容易。 這樣一來,客戶就不必了解域復雜性。 它包含外立面。 也是處理某些問題(例如安全性,事務管理等)的好地方。
數據層:該層管理存儲邏輯。 它可以是一個簡單的文件或一些較大的關系數據庫。 在沒有業務邏輯或業務邏輯很少的簡單項目中,數據層扮演“域層”角色,反之亦然。 其實這並不重要。 重要的是,域模型與數據結構之間可能存在一些阻抗失配。 數據層的主要關注點是為應用程序的其他部分(特別是域層)解決此難題。
哪一層與數據通信? 最重要的是域層。 但這並不總是正確的。 假設您要在數據庫中保存UI的一些用戶首選項。 因此,表示層也可以與數據層通信。 實際上,任何層都可以與數據進行通信。 重要的是,您應該使用模式和最佳實踐(例如IOC)來充分利用項目需求。
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.