軟件設計要素初探:架構模式

「軟件設計要素初探」 一文,嘗試從軟件設計的總體角度,綜合討論了軟件設計的各類要素。本文探討系統組件交互的架構模式。

html

概述

架構模式是系統組件及組件交互的模式,決定了處理數據和領域對象的全局控制結構。組件化是使用架構模式的前提。 可參閱 《面向模式的軟件架構》瞭解更多架構模式。

前端

模式清單

分層模式

  • 分層模式: 將應用劃分爲多個層次,定義各層的接口、任務抽象及消息格式,以及各層之間的通訊與交互。業務系統一般會劃分爲業務邏輯層、服務層、領域層、數據層。網絡棧協議是分層模式的典型應用。應用分層模式時,爲確保系統可維護性,一般第j+1層只依賴於第j層的接口和服務;在性能場合下,可能會有跨層依賴的狀況;應對特殊場景的設計中,會有「第j層的服務依賴於第j+1層的服務」的反向依賴關係。可參閱《面向模式的軟件架構:模式系統》第2.2.1節。

RESTFUL模式

  • RESTFul模式:適合資源構建與共享的可伸縮的架構模式,適合於構建API接口。全局規範一致的資源邏輯命名、尋址、返回碼定義,關注資源與數據而非行爲或服務;無狀態的聲明式的請求;對客戶端隱藏實現細節;通用的數據返回格式(JSON),跨語言與平臺;使用名詞而非動詞做爲路徑名。 可參閱《架構之美》第5章:「Web:面向資源的架構」。

MVC模式

  • MVC模式:「模型-視圖-控制」, 經典的WebUI架構模式,控制處理請求從而更新模型和返回視圖,模型更新驅動視圖更新,視圖請求控制處理。經典的JavaMVC框架有 Struts2, SpringMVC, 前端MVC框架有Extjs4.

插件模式

  • 插件模式:設計了可擴展的插件接口及插件交互機制,開發者只要遵循規範編寫和調試具體的插件並融入到系統,便可爲系統增長新功能和新特性。使用插件模式的系統有 Eclipse, Emacs, Firefox, Chrome 等。

訂閱-消費模式

  • 訂閱-消費模式: 大型互聯網應用中幾乎都存在訂閱和消費業務表更新或業務消息推送的子系統。訂閱-消費模式須要高穩定可用的消息中間件,並仔細評估消息延遲對用戶活動形成的影響。新品消息推送、商品消費訂閱、發貨提醒等,咱們正處於一個「消息/通知的訂閱-推送-被消費」的移動互聯網時代裏。

Pipeline模式

  • 管道-過濾器-處理器鏈:一個請求沿着管道鏈接的處理鏈,依次由鏈上的過濾器、攔截器、處理器進行處理並返回。JavaWeb應用的Servlet架構模式是「過濾器-處理器鏈」的典型應用;UnixShell 則是「管道-過濾器-重定向」結構的典型應用。

事件驅動模式

  • 事件驅動模式: 在系統內定義一系列的組件、事件及監聽器,組件發生變化時觸發事件,通知相應的監聽器處理事件更新組件,進而觸發新的事件,如此循環直至手動終止系統或系統崩潰。適用於GUI應用開發。

Actor模式

規則-工做流模式

相關文章
相關標籤/搜索