天天看點

章二 軟體體系結構的構模組化式(2)

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/1468174

章二 軟體體系結構的構模組化式(2)

三、事件驅動模式

1、事件驅動模式

事件驅動系統的基本觀點是一個系統對外部的表現可以從它對事件的處理表征出來。

特點:

  (1)系統由若幹個子系統或元素所組成的一個整體;

  (2)系統有一定的目标,各子系統在某一種消息機制的控制下,為了這個目标而協調行動;

  (3)在某一種消息機制的控制下,系統作為一個整體與環境相适應和協調;

  (4)在一個系統的若幹子系統中,必定有一個子系統起着主導作用,而其它子系統處于從屬地位;

  (5)任一系統和系統内的任一進制素,都有一個事件收集機制和一個事件處理機制,通過這種機制與周圍環境發生作用和聯系。

在基于事件驅動模式的系統設計中,系統的每個子系統在設計過程中都要考慮其完整性和相對獨立性,不絕對依賴于某一子系統,系統之間的協調和管理都是通過消息傳遞和收集來進行的。

2、事件驅動模式系統的設計原則:

  (1)從系統論的角度看待描述的對象,合理分解子系統,保證各個子系統的獨立性和社會性;

  (2)任何子系統都可按有無子系統這一性質分:管理系統和執行系統;

  (3)為達到系統的目标,系統内的各個子系統通過傳遞消息和執行消息來協同操作;

  (4)任何性質的子系統都必須有一個事件處理器,用以處理上級交給的事件;

  (5)在一個完整系統中,必須有這樣一個子系統,它沒有上級,必須收集系統外的事件及下級發出的事件;

  (6)管理類型的子系統一般不執行具體操作,它的主要功能是按照自己的隻能指揮下級完成任務,功能性操作一般由執行類型的子系統完成;

  (7)一般情況,除最高管理子系統外,子系統一般是“有問才答”,即使在必要的情況下需要積極尋找事件時,也必須征得上級系統的許可,保證了系統的控制流不會分散。

3、事件驅動模式的優點:

  (1)事件驅動模式非常适合于描述系統族,在屬于同一族的任何系統中,系統的進階管理子系統的描述是完全類似的,便于重用;

  (2)由于最高管理子系統牢牢的掌握着控制權,又因為各同級子系統一般不直接發生關系,是以容易實作并發處理和多任務操作;

  (3)基于事件驅動模式的系統具有良好的可擴充性,設計者隻需為某個對象注冊一個事件處理接口就可以将該對象引入整個系統,同僚并不影響其它的系統對象;

  (4)定義了包含執行子系統和管理子系統的類層次結構;

  (5)簡化客戶代碼;

  (6)使整個系統的設計更具有一般化。

4、事件驅動模式的不足:

  (1)構件消弱了自身對系統計算的控制能力;

  (2)事件驅動模式中存在的另一個問題是資料共享;

  (3)系統中各個對象的邏輯關系變得更加複雜。

5、事件驅動模式和面向對象之間的關系:基于事件驅動模式的系統往往都是面向對象的。

事件接口

6、事件驅動模式執行個體

事件驅動是JavaBean體系結構的核心之一,JavaBean系統通過事件驅動機制将一些元件作為事件源,發出可以被描述環境或其它元件接收的事件。

擴充卡類是JavaBean事件模型中極其重要的一部分,在一些應用場合,事件從源到監聽者之間的傳遞要通過适配類來“轉發”。

适配類成為了事件監聽者,事件源實際是把适配類作為監聽者注冊到監聽者隊列中,而真正的事件響應者并未在監聽者隊列中,事件響應者應做的動作由适配類決定。

四、分層模式

1、分層模式特征

一個分層系統采用階層化的組織方式建構,系統中的每一層都要承擔兩個角色。

首先,它要為結構中的上層提供服務;

其次,它要作為結構中下面層次的客戶,調用下層提供的功能函數。

最高層和最低層例外。

核心層-功能層-應用層

2、分層模式的優點:

  (1)分層模式支援系統設計過程中的逐級抽象;

  (2)分層模式的系統具有較好的可擴充性;

  (3)分層模式支援軟體複用。

3、分層模式的不足:

并非所有的系統都适合用分層模式來描述的;對于抽象出來的功能具體應該放在哪個層次上也是設計者頭疼的問題。

4、執行個體:

在計算機網絡的設計中,采用了分層模式的設計方法。ISO/OSI的七層參考模型。

繼續閱讀