什麼是架構模式呢?總結來說,就是使程式有架構性的開發,目的是為了降底耦合,讓程式更有彈性,更容易維護或更貼近業務需求與目標。

 

Repository (Data-Centered, 類似資源中心)
描述 : 所有的data都是由central repository 管理 , 所有的components 不直接作用而是透過repository
使用時機 : 系統擁有龐大資料被產生且需要存儲時。
優點 : components之間獨立,可藉由一個component改變而傳播給所有元件。所有資料可以直接被管理。
缺點 : 只要產生一個錯誤可能會影響所有系統,只透過repository溝通導致效率降低,透過數台電腦分布repository是很困難的
 
「Repository (data-centered)」的圖片搜尋結果
 
Layered (Abstract Machine Model)
描述 : 將系統依據功能關係分成每一個layer,每個layer提供服務給更上層,因此最底層為核心服務,為整個系統所使用。
使用時機 : 當一個新設備需要將開發切割成若干team去開發每一層的功能時,或者需要多層級的安全控管時。
優點 : 只要介面是可維護的那麼就可以更換整個layer,多餘的設施可被提供給每層,提高系統的可靠性。
缺點 :  分層不明確會互相干擾。
效能問題 : 每一層要傳達指令都必須要先翻譯才能執行
「Layered (Abstract Machine Model)」的圖片搜尋結果

 

Client-Server
描述 : 依據service切割成不同的server提供user使用
使用時間 : 當你需要從不同位置去使用或分享相同的資料庫時。
優點 : server可以分布到網路上,使用者可以只取得需要的基本服務而不用使用到全部的服務。
缺點 : 每個服務都是單一故障點(a single point of failure),因此很容易受到攻擊或故障,性能不可預測,整體取決於網路或系統管理的問題。

「Client-Server」的圖片搜尋結果

圖片來源 : Network Communications Models

 

Pipe and Filter
描述 : 在系統中會組織要被處理的數據,以便每個component(過濾器 filter)去離散(discrete)且執行一種類型的數據變換。
使用時機 : 普遍用於資料處理應用,輸入分成數個階段處理並生成相關的輸出。
優點 : 

● 容易被了解和支援轉換再利用

● 工作流程風格匹配許多業務的流程

● 發展中加入轉換的功能非常簡單

● 可以在任何順序下被執行或合成系統

缺點 : 

● 傳輸格式必須要協定

● 每個轉換都要分析其輸入且輸出協定的形式,說明系統不可能重複使用不相互兼容的數據結構進行轉換。

「pipe and filter architecture」的圖片搜尋結果

圖片來源 : MSDN

 

MVC (Model View Controller) 
M = Model
封裝商業邏輯&資料處理方法,model可以接對資料進行存取。當model的資料改變時,view要即刻知道。
V = View
資料顯示的地方,可以理解成user interface,在這一部份沒有程式邏輯
C = controller
控制程式流程的區域,接收event、invoke model處理event
相關圖片
圖片來源 : safaribooksonline

 

 

 





arrow
arrow
    文章標籤
    Architectural pattern
    全站熱搜

    橘子亂說話 發表在 痞客邦 留言(0) 人氣()