關於UML第二部分和建立型模式的總結

2022-06-15 15:42:13 字數 3556 閱讀 4548

檢視分為三個檢視域:結構分類、動態行為和模型管理。

<1>動態行為是指描述了系統隨時間變化的行為。動態行為檢視包括狀態機檢視。活動檢視和互動檢視。

<2>互動試圖

互動檢視描述了實現系統行為角色之間的訊息交換序列。分類角色是對互動中充當特殊角色的物件的描述。從而使該物件區別於相同類的物件,檢視提供了系統中行為全域性的描述。它顯示了多個物件間的控制流程 互動檢視用側重點不同的兩種圖來顯示 順序圖和協作圖 。

1.順序圖: 順序圖描述的是乙個事務的流程,這個流程和面向過程程式設計中的順序結構是一樣的,從上到下。

2.協作圖:  協作圖是對在一次互動中有意義的物件和物件間的鏈建模,物件和關係只有在互動的語境中才有意義。協作圖用幾何排列來表示互動作用中的各角色。附在類元角色上的箭頭表示訊息,訊息的發生順序用編號數字表示。

3.活動試圖:活動檢視是用於顯示執行某個計算過程中的運算活動的狀態機的一種變形。活動狀態表現了一項活動:工作流的步驟或操作的執行。活**描述了順序和併發活動分組。活動檢視表達為活**。

4.狀態機檢視: 狀態機檢視是乙個類物件可能經歷的的所有歷程的模型圖。狀態機由物件的各個狀態和連線這些狀態的轉換組成。每個狀態對乙個物件在其生命週期中滿足某種條件的一段時間段建模。當乙個事件發生時觸發狀態的轉換,從乙個狀態轉化為另乙個狀態。

單例模式(singleton單體)

確保乙個類只有乙個例項,並提供乙個全域性訪問點來訪問這個唯一例項。

(1)提供唯一的私有構造器,避免多個單體(singleton)物件被建立。

(2)使用靜態域(static field)來維護例項。

(3)使用靜態方法(static method)來監視例項的建立。 (a,載入時例項化     b,使用時例項化(惰性初始化):這樣做可以在執行時收集需要的資訊來例項化單體物件,確保例項只有在需要時才被建立出來.)

(4)單體物件的成員變數(屬性):即單體物件的狀態   通過單例物件的初始化來實現成員變數的初始化。   通過方法對單體物件的成員變數進行更新操作。

優點:

1、提供了對唯一例項的受控訪問。

2、可以節約系統資源,提高系統的效能。

缺點:

1、缺少抽象層,擴充套件困難。

2、例類的職責過重。

3、由於自動垃圾**機制,可能會導致共享的單例物件的狀態丟失。

抽象工廠模式(abstract factory)

主要解決介面選擇的問題。提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。

要點如果沒有應對「多系列物件構建」的需求變化,則沒必要用抽象工廠模式

如果沒有應對「多系列物件構建」的需求變化,則沒必要用抽象工廠模式

系列物件指的是這些物件之間有相互依賴,或作用的關係。

抽象工廠模式主要在於應對「新系列」的需求變動,其缺點在於難於應對「新物件」的需求變動。

抽象工廠模式經常和工廠方法模式共同組合來應對「物件建立」的需求變化。

優點:當乙個產品族中的多個物件被設計成一起工作時,它能保證客戶端始終只使用同乙個產品族中的物件。

缺點:產品族擴充套件非常困難,要增加乙個系列的某一產品,既要在抽象的 creator 裡加**,又要在具體的裡面加**。

生成器模式(建造者模式)

將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。

在以下情況使用builder模式:

• 當建立複雜物件的演算法應該獨立於該物件的組成部分以及它們的裝配方式時;

• 當構造過程必須允許被構造的物件有不同的表示時。

優點

1. 建造者獨立,易擴充套件。

2. 便於控制細節風險。

缺點

1. 產品必須有共同點,範圍有限制。

2. 如內部變化複雜,會有很多的建造類。

builder模式與abstract factory或factory模式相似,都可以建立複雜物件,但是不同之處在於builder模式著重於一步步構造乙個複雜物件,在最後一步返回產品,強調構造細節,而後兩者著重於多個系列的產品一次生成,通常產品是立即返回的。

工廠方法模式(factory method )

定義乙個用於建立物件的介面,但是讓子類決定將哪乙個類例項化。

優點:

1、工廠方法用來建立客戶所需要的產品,同時還向客戶隱藏了哪種具體產品類將被例項化這一細節。能夠讓工廠自主確定建立何種產品物件,而如何建立這個物件的細節則完全封裝在具體工廠內部。

2、在系統中加入新產品時,完全符合開閉原則。

缺點:

系統中類的個數將成對增加,在一定程度上增加了系統的複雜度,會給系統帶來一些額外的開銷。增加了系統的抽象性和理解難度。

原型模式(prototype)

使用原型例項指定待建立物件的型別,並且通過複製這個原型來建立新的物件。

優點:

1、簡化物件的建立過程,通過複製乙個已有例項可以提高新例項的建立效率。

2、擴充套件性較好。

3、提供了簡化的建立結構,無須專門的工廠類來建立產品。

4、可以使用深轉殖的方式儲存物件的狀態,需要的時候可輔助實現撤銷操作。

缺點:

1、需要為每乙個類配備乙個轉殖方法,而且該轉殖方法位於乙個類的內部,當對已有的類進行改造時,需要修改源**,違背了開閉原則。

2、在實現深轉殖時需要編寫較為複雜的**。

UML第二部分和建立型模式

狀態機檢視通過對每個類的物件的生命期進行建模 描述了物件時間上的動態行為 狀態指就某個特定類而言 對於發生的事件具有相同性質響應的一系列物件值。狀態機不但可以描述類的行為 而且可以描述用例 協作和方法的動態行為。狀態的種類分為 簡單狀態,併發復合狀態,順序復合狀態,初始狀態,結束狀態,匯合狀態,歷史...

Web API 第二部分

web api 第二部分 元素偏移量 offset element.offsettop element.offsetleft element.offsetwidth 可以得到元素的大小 寬度和高度 是包含padding border width element.offsetheight elemen...

redux 第二部分

redux 的使用方法,為什麼使用 action.js 檔案,進行優化 將其分開,然後我們通過工廠函式的每次返回不同的物件,由於引數是固定的,每次返回的都是事件型別和事件資料,所以我們可以使用乙個函式,通過其返回值來返回乙個物件,讓後傳遞給 action 我們的 reducer 函式有兩個引數,引數...