UML第一部分和設計模式原則總結

2022-06-16 17:33:13 字數 2143 閱讀 2530

uml(unified modeling language)是一種統一建模語言,為物件導向開發系統的產品進行說明、視覺化、和編制文件的一種標準語言。下面將對uml的九種圖+包圖的基本概念進行介紹以及各個圖的使用場景。

一、基本概念  

uml圖分為用例檢視、設計檢視、程序檢視、實現檢視和拓撲檢視,又可以靜動分為靜態檢視和動態檢視。

靜態圖分為:用例圖,類圖,物件圖,包圖,構件圖,部署圖。

動態圖分為:狀態圖,活**,協作圖,序列圖。

檢視在最高層次可以劃分為三個領域:結構性分類,動態行為和模型管理。

結構性分類描述了系統中的事物和事物間的關係。分類包括類,用例,構件和結點。分類提供了動態行為構建的基礎。分類檢視包括靜態檢視,用例檢視和實現檢視。

動態行為描述了系統時間上的行為。行為可以用靜態檢視中系統快照的一系列變更來描述。行為檢視包括狀態機圖,活**和互動圖

模型管理描述了用層次式的單元對模型自身的組織。包是模型的通用組織單元。特殊的包包括模型和子系統。模型管理檢視與其它檢視相交迭,為團隊工作和配置控制把它們組織起來。

uml還包括欲提供有限但實用擴充套件能力的若干結構。這些結構包括約束,版型和標籤值。它們適用於所有檢視的元素。

一、單一職責原則:

就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。如果你能夠想到多於乙個的動機去改變乙個類,那麼這個類就具有多於乙個的職責,就應該考慮類的職責分離。

單一職責原則的好處:

* 類的複雜性降低,實現什麼職責都有清晰明確的定義。

* 可讀性提高,複雜性降低,那當然可讀性提高了。

* 可維護行提高。

* 變更親戚的風險降低,更變是必不可少的,如果介面的單一職責做得好,乙個介面修改只對相應的實現類有影響,對其他的介面無影響,這對系統的擴充套件性、維護性都有非常大的幫助。

二、開放-封閉原則

軟體實體(類、模組、函式等)應該可以擴充套件,但是不可以修改,即對於擴充套件是開放的,對於更改是封閉的;開放-封閉原則是物件導向設計的核心所在,遵循這個原則可以帶來物件導向技術所聲稱的巨大好處,也就是可維護、可擴充套件、可復用、靈活性好。開發人員應該僅對程式中呈現出頻繁變化的那些部分做出抽象,然後,對於應用程式中的每個部分都刻意地進行抽象同樣不是乙個好主意。拒絕不成熟的抽象和抽象本身一樣重要。

開閉原則的使用性:

1、只要是物件導向的程式設計,在開發過程中都會強調開閉原則

2、是最基礎的設計原則,其他五個設計原則都是開閉原則的具體形態

3、可以提高**的復用性

4、可以提高**的可維護性

三、黎克特制代換原則

定義:子型別必須能夠替換掉它們的父型別。也就是說,乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且它覺察不出父類物件和子類物件的區別,即在軟體裡面,把父類都替換成它的子類,程式的行為沒有變化。只有當子類可以替換掉父類,軟體單位的功能不受到影響時,父類才能真正被復用,而子類也能夠在父類的基礎上增加新的行為。

優點: **共享,減少建立類的工作量,每個子類都擁有父類的方法和屬性;

* 提高**的重用性;

* 子類可以形似父類,但又異於父類,「龍生龍,鳳生鳳,老鼠生來會打洞」是說子擁有父的「種」,「世界上沒有兩片完全相同的葉子」是指明子與父的不同;

* 提高**的可擴充套件性,實現父類的方法就可以「為所欲為」了,君不見很多開源框架的擴充套件介面都是通過繼承父類來完成的;

* 整合是侵入性的。只要繼承,就必須擁有父類的所有屬性和方法;

* 降低**的靈活性。

* 增強了耦合性。

四、依賴倒置原則

三層含義:

1.高層模組不應該依賴低層模組,兩者都應該依賴其抽象;

2.抽象不應該依賴細節;

3.細節應該依賴抽象。

五、迪公尺特法則

定義:它要求乙個物件應該對其他物件有最少的了解,所以迪公尺特法則又叫做最少知識原則。

如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。該法則首先強調的前提是在類的結構設計上,每乙個類都應該盡量降低成員的訪問許可權,即乙個類包裝好自己的private狀態,不需要讓別的類知道的字段或行為就不要公開。迪公尺特法則的根本思想,是強調了類之間的松耦合。類之間的耦合越弱,越有利於復用,乙個處在弱耦合的類被修改,不會對有關係的類造成波及。

UML第一部分和設計模式原則的總結

1 uml中常見的關係的線性表示 擴充套件關係 泛化 繼承 關係 依賴關係 聚合關係 組成關係 關聯關係 實現關係 2 uml中幾種基本圖及其基本功能作用 靜態圖 類圖 用例圖。行為圖 狀態圖 活 互動圖 時序圖 協作圖 實現圖 構件圖 部署圖 類圖 類圖是描述類 介面 協作以及它們之間的關係的圖,...

UML第一部分(補)

uml unified modeling language 是一種統一建模語言,為物件導向開發系統的產品進行說明 視覺化 和編制文件的一種標準語言。下面將對uml的九種圖 包圖的基本概念進行介紹以及各個圖的使用場景。一 基本概念 uml圖分為用例檢視 設計檢視 程序檢視 實現檢視和拓撲檢視,又可以靜...

讀《遊戲設計模式》第一部分

第一部分位址 什麼是好的軟體架構?對我而言,好的設計意味著當我作出改動,整個程式就好像正等著這種改動。我可以僅呼叫幾個函式就完成任務,而 庫本身無需改動。評價架構設計的好壞就是評價它應對改動有多麼輕鬆。這聽起來很棒,但實際上不可行。把 寫成改動不會影響其表面上的和諧 就好。你如何處理改動?在你改動 ...