輕量級架構設計之分層的魅力

2021-08-24 18:52:49 字數 1064 閱讀 9889

介紹一下手頭乙個系統的軟體結構,先附上圖:

大概分為5層:

檢視層:

作用:系統和使用者進行互動,分離出來,是因為系統修改了介面無需修改業務,甚至於

可以把改寫為wap在手機瀏覽器進行操作。

組成部分:web元件、struts標籤等

應用層:

作用:對業務的複雜性進行了封裝,檢視層的呼叫者無需知道業務邏輯的具體細節,它僅僅知道使用就可以了,作為系統的協調者,接受資料,對資料進行的操作,操作之後所要到達的檢視。

組成部分:控制器、pojp facade(看下方註解)

領域層:

作用:業務邏輯層,在這裡實現所有的業務邏輯,以及建模中抽象出來的模型,嚴格的話可以再用聚合的思路抽象出一些業務邏輯的協調者(比如:轉賬的時候,呼叫了減去餘額和專家餘額2個類,那就可以抽象出乙個協調類,負責一起呼叫這2個類)

組成部分:業務邏輯、模型、業務邏輯協調者(業務 facade)

持久層:

作用:就是把模型、實體等的物件持久化到硬碟

組成部分:hibernate、dao等

公共基礎層:

作用:系統中可以作為基礎功能的一些集合

總結:

註解:

pojo facade:

引自《pojos in action》中的解析,比如:現在汽車是件複雜的機器。它包含

各種機械部件,如:氣缸、輪胎等,也許還提供和有足以把飛船送上月球的接受能力,不過對

於使用者來說,大部分複雜性都不可見,要開動汽車,我們只需和車鑰匙、方向盤、腳剎和變速

檔打交道。這些簡單的控制裝置封裝了汽車內部的複雜性。同樣,對於業務邏輯的客戶表示層

(和控制器)來說,我們也需要隱藏業務邏輯的複雜性。pojo façade在這裡其實就是領域模

型的使用者。因為領域模型最好是用pojo方式編碼(即不依賴於特定的框架,如spring、ejb

,這是業務邏輯編碼的準則)。

iOS架構設計與分層

多人都會說,凡事不能走極端,走了極端就過猶不及。所以應該分層,但不能過分分層,應該視具體情況來定。這樣的話聽起來很有道理,卻只是一句廢話。當我們遇到問題時,還是摸不著頭腦!看看知名的架構師是怎麼說的吧!來自蔡學鏞 我做 開發 架構的幾個原則,根據優先次序高低排列 1.邏輯 拆分越細越好 2.依賴關細...

iOS架構設計與分層

多人都會說,凡事不能走極端,走了極端就過猶不及。所以應該分層,但不能過分分層,應該視具體情況來定。這樣的話聽起來很有道理,卻只是一句廢話。當我們遇到問題時,還是摸不著頭腦!看看知名的架構師是怎麼說的吧!來自蔡學鏞 我做 開發 架構的幾個原則,根據優先次序高低排列 1.邏輯 拆分越細越好 2.依賴關細...

移動App設計之分層架構 MVC

場景分析 我們知道,乙個移動裝置的應用大多與網路有關,也就是說,我在移動裝置上看到的資料,一般都是從server上 拉 過來,顯示在我們的移動裝置 ios androiud wpohone等 上。那我們就這個 拉 的過程分析,拉什麼樣的資料?去 拉?拉過來的資料怎麼處理?用程式設計 開發 的思維看,...