簡體   English   中英

分層體系結構:應用程序和基礎層

[英]Layered Architecture: Application and Infra Layer

我開始學習軟件體系結構,並且看到了一些使我感到困惑的分層體系結構實現。

一般而言,這些解決方案具有以下幾層:

  • 表示層;
  • 應用/服務層;
  • 域層;
  • 紅外線/數據層;

我不確定:

  1. 對我來說,尚不清楚這些層中的每一層如何工作,它們所關注的是什么;
  2. 我不清楚哪個層與數據層通信。 是應用層嗎? 有人說應用程序層不應該對數據層有任何參考或知識。

如果有人可以回答我這些問題或向我推薦一些資源以了解更多信息,我將不勝感激。

感謝,並有一個愉快的一天! :)

  • 表示層:顧名思義,該層的關注點就是用戶看到或與其交互的內容。 它包含UI邏輯,圖形,表單,圖像等。

  • 域層:這是處理您的業務邏輯的地方。 如果您正在編寫Weblog,則此層包含對象和實體,如“帖子”,“用戶”,“評論”等。如果您正在編寫財務系統,則它們將是“帳本”,“帳戶”,“資金”等。系統中最有價值的代碼依賴於此,因為他們滿足了用戶的關注。

  • 基礎結構層:從傳統意義上講,每個層都僅訪問基礎層,但是有時該層涵蓋了多層的問題。 因此,我懷疑您是否可以將其稱為經典意義上的一層 它包含應用程序范圍的抽象和基類,有時還涉及交叉問題等。

  • 服務層:處理域邏輯的一種常用方法是將域層分成兩部分。將服務層置於基礎域模型之上 ”,PoEAA,Martin Fowler。 就像馬丁·福勒(Martin Fowler)在他的書中說的那樣(我建議您閱讀本書),這是您網域之上的一層,可以使您對網域的使用更加容易。 這樣一來,客戶就不必了解域復雜性。 它包含外立面。 也是處理某些問題(例如安全性,事務管理等)的好地方。

  • 數據層:該層管理存儲邏輯。 它可以是一個簡單的文件或一些較大的關系數據庫。 在沒有業務邏輯或業務邏輯很少的簡單項目中,數據層扮演“域層”角色,反之亦然。 其實這並不重要。 重要的是,域模型與數據結構之間可能存在一些阻抗失配。 數據層的主要關注點是為應用程序的其他部分(特別是域層)解決此難題。

哪一層與數據通信? 最重要的是域層。 但這並不總是正確的。 假設您要在數據庫中保存UI的一些用戶首選項。 因此,表示層也可以與數據層通信。 實際上,任何層都可以與數據進行通信。 重要的是,您應該使用模式和最佳實踐(例如IOC)來充分利用項目需求。

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM