幾種典型的架構(gòu)模式:
在開發(fā)系統(tǒng)軟件時多用架構(gòu)模式:
1、分層(Layer):從不同的層次來觀察系統(tǒng),處理不同層次問題的對象被封裝到不同的層中。
2、管道和過濾器(Pipes and Filters):用數(shù)據(jù)流的觀點來觀察系統(tǒng)。整個系統(tǒng)由一些管道和過濾器組成,需要處理的數(shù)據(jù)同管道傳送給每一個過濾器,每個過濾器就是一個處理步驟。每個過濾器可以單獨修改,功能單一,并且它們之間的順序可以進行配置。但數(shù)據(jù)通過了所有的過濾器后,就完成了所有的處理操作,得到了最終的處理結(jié)果。
一個典型的管道/過濾器體系結(jié)構(gòu)的例子是以Unix shell編寫的程序。Unix既提供一種符號,以連接各組成部分(Unix的進程),又提供某種進程運行時機制以實現(xiàn)管道。另一個著名的例子是傳統(tǒng)的編譯器。傳統(tǒng)的編譯器一直被認(rèn)為是一種管道系統(tǒng),在該系統(tǒng)中,一個階段(包括詞法分析、語法分析、語義分析和代碼生成)的輸出是另一個階段的輸入。

3、黑板(Blackboard):在這種架構(gòu)中,有兩種不同的構(gòu)件:一種是表示當(dāng)前狀態(tài)中心數(shù)據(jù)結(jié)構(gòu);另一種是一種相互獨立的構(gòu)件,這些構(gòu)件對中心數(shù)據(jù)進行操作。這種架構(gòu)主要用于數(shù)據(jù)庫和人工智能系統(tǒng)的開發(fā)。
在開發(fā)分布式軟件時多用架構(gòu)模式:
1、經(jīng)紀(jì)人(Broker):客戶和服務(wù)器通過一個經(jīng)紀(jì)人部件進行通信,經(jīng)紀(jì)人負(fù)責(zé)協(xié)調(diào)客戶和服務(wù)器之間的操作,并且為客戶和服務(wù)器發(fā)送請求和結(jié)果信息。
2、客戶/服務(wù)器(Client/Server):系統(tǒng)分為客戶和服務(wù)器,服務(wù)器一直處于偵聽的狀態(tài),客戶主動連接服務(wù)器,每個服務(wù)器可以為多個客戶服務(wù)
3、點對點(Peer to Peer):系統(tǒng)中的節(jié)點都處于平等的地位,每個節(jié)點都可以連接其他節(jié)點。在這種架構(gòu)中,一般需要由一個中心服務(wù)器完成發(fā)現(xiàn)和管理節(jié)點的操作。ICQ以及Web Service技術(shù)的大多數(shù)應(yīng)用,都是典型的點對點結(jié)構(gòu)。
開發(fā)交互軟件時多用架構(gòu)模式:
1、模型-視圖-控制器(Model-View-Controller):當(dāng)應(yīng)用程序的用戶界面非常復(fù)雜,且關(guān)于用戶界面的需求很容易變化時,我們可以把交互類型的軟件抽象成模型、視圖和控制器這三類組件單元,這種抽象可以很好地分離用戶界面和業(yè)務(wù)邏輯,適應(yīng)變化的需求。大多數(shù)現(xiàn)代交互軟件都在一定程度上符合這一架構(gòu)模型的特點。

2、顯示-抽象-控制(Presentation-Abstraction-COntrol):這是MVC的另一種變形。
posted on 2009-07-23 10:16
longshen 閱讀(490)
評論(0) 編輯 收藏 引用 所屬分類:
程序員