優(yōu)點(diǎn):一個較低的層可以被不同的層所使用。層使標(biāo)準(zhǔn)化更容易,因為我們可以清楚地定義級別??梢栽趯觾?nèi)進(jìn)行更改,而不會影響其他層。
缺點(diǎn):不是普遍適用的。在某些情況下,某些層可能會被跳過。
二. 客戶端-服務(wù)器模式優(yōu)點(diǎn):很好地建立一組服務(wù),用戶可以請求他們的服務(wù)。
缺點(diǎn):請求通常在服務(wù)器上的單獨(dú)線程中處理。由于不同的客戶端具有不同的表示,進(jìn)程間通信會導(dǎo)致額外開銷。
三. 主從設(shè)備模式優(yōu)點(diǎn):準(zhǔn)確性——將服務(wù)的執(zhí)行委托給不同的從設(shè)備,具有不同的實現(xiàn)。
缺點(diǎn):從設(shè)備是孤立的:沒有共享的狀態(tài)。主-從通信中的延遲可能是一個問題,例如在實時系統(tǒng)中。這種模式只能應(yīng)用于可以分解的問題。
四. 管道-過濾器模式優(yōu)點(diǎn):展示并發(fā)處理。當(dāng)輸入和輸出由流組成時,過濾器在接收數(shù)據(jù)時開始計算。輕松添加過濾器,系統(tǒng)可以輕松擴(kuò)展。過濾器可重復(fù)使用。 可以通過重新組合一組給定的過濾器來構(gòu)建不同的管道。
缺點(diǎn):效率受到慢的過濾過程的限制。從一個過濾器移動到另一個過濾器時的數(shù)據(jù)轉(zhuǎn)換開銷。
五. 代理模式優(yōu)點(diǎn):允許動態(tài)更改、添加、刪除和重新定位對象,這使開發(fā)人員的發(fā)布變得透明。
缺點(diǎn):要求對服務(wù)描述進(jìn)行標(biāo)準(zhǔn)化。
六. 點(diǎn)對點(diǎn)模式優(yōu)點(diǎn):支持分散式計算。對任何給定節(jié)點(diǎn)的故障處理具有強(qiáng)大的健壯性。在資源和計算能力方面具有很高的可擴(kuò)展性。
缺點(diǎn):服務(wù)質(zhì)量沒有保證,因為節(jié)點(diǎn)是自愿合作的。是很難得到保證的。性能取決于節(jié)點(diǎn)的數(shù)量。
七. 事件總線模式優(yōu)點(diǎn):新的發(fā)布者、訂閱者和連接可以很容易地添加。對高度分布式的應(yīng)用程序有效。
缺點(diǎn):可伸縮性可能是一個問題,因為所有消息都是通過同一事件總線進(jìn)行的。
優(yōu)點(diǎn):可以輕松地?fù)碛型粋€模型的多個視圖,這些視圖可以在運(yùn)行時連接和斷開。
缺點(diǎn):增加復(fù)雜性??赡軐?dǎo)致許多不必要的用戶操作更新。
九. 黑板模式優(yōu)點(diǎn):很容易添加新的應(yīng)用程序。擴(kuò)展數(shù)據(jù)空間的結(jié)構(gòu)很簡單。
缺點(diǎn):修改數(shù)據(jù)空間的結(jié)構(gòu)非常困難,因為所有應(yīng)用程序都受到了影響。可能需要同步和訪問控制。
十. 解釋器模式優(yōu)點(diǎn):高度動態(tài)的行為是可行的。對終端用戶編程性提供好處。提高靈活性,因為替換一個解釋程序很容易。
缺點(diǎn):由于解釋語言通常比編譯后的語言慢,因此性能可能是一個問題。