日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式基础之类与类图

發(fā)布時間:2024/3/12 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式基础之类与类图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ? ? ?1.類的定義: ? ? ? ?類(Class)封裝了數(shù)據(jù)和行為,是面向?qū)ο蟮闹匾M成部分,它是具有相同屬性、操作、關(guān)系的對象集合的總稱。 ? ? ? ? 在系統(tǒng)中,每個類具有一定的職責,職責指的是類所擔任的任務(wù),即類要完成什么樣的功能,要承擔什么樣的義務(wù)。一個類可以有多種職責,設(shè)計得好的類一般只有一種職 ? ? ? 責,在定義類的時候,將類的職責分解成為類的屬性和操作(即方法)。 ? ? ? ? 類的屬性即類的數(shù)據(jù)職責,類的操作即類的行為職責 ? ? ? ?2.類的表示: ? ? ? ? UML(Unified Modeling Language類圖中,類一般由三部分組成: ? ? ? ??類名:每個類都必須有一個名字,類名是一個字符串。? ? ? ? ??屬性(Attributes):屬性是指類的性質(zhì),即類的成員變量。類可以有任意多個屬性,也可以沒有屬性。

? ? ?可見性 名稱:類型[= 默認值]

? ? ? ??操作(Operations):操作是類的任意一個實例對象都可以使用的行為,操作是類的成員方法。 ? ? ??
? ? ? 3.類之間的關(guān)系: ? ? ? ? a.關(guān)聯(lián)關(guān)系 ? ? ? ? ?關(guān)聯(lián)關(guān)系(Association)是類與類之間最常用的一種關(guān)系,它是一種結(jié)構(gòu)化關(guān)系,用于表示一類對象與另一類對象 ? ? ? ? ?之間有聯(lián)系 ? ? ? ? ?UML類圖中,用實線連接有關(guān)聯(lián)的對象所對應(yīng)的類,在使用JavaC#C++等編程語言實現(xiàn)關(guān)聯(lián)關(guān)系時,通 ? ? ? ? ? ?常將一個類的對象作為另一個類的屬性 ? ? ? ? ?在使用類圖表示關(guān)聯(lián)關(guān)系時可以在關(guān)聯(lián)線上標注角色名 ? ? ? ??

? ?public classLoginForm

{

???privateJButtonloginButton;

??? ……

}

public classJButton

{

???……

}

?①雙向關(guān)聯(lián):默認情況下,關(guān)聯(lián)是雙向的

??

②單向關(guān)聯(lián):類的關(guān)聯(lián)關(guān)系也可以是單向的,單向關(guān)聯(lián)用帶箭頭的實線表示


③自關(guān)聯(lián):在系統(tǒng)中可能會存在一些類的屬性對象類型為該類本身,這種特殊的關(guān)聯(lián)關(guān)系稱為自關(guān)聯(lián)

? ? ??

public class Node

{

???private Node?subNode;

??? ……

}?

重數(shù)性關(guān)聯(lián): ??重數(shù)性關(guān)聯(lián)關(guān)系又稱為多重性關(guān)聯(lián)關(guān)系(Multiplicity),表示一個類的對象與另一個類的對象連接的個數(shù)。在UML中多重性關(guān)系可以直接在關(guān)聯(lián)直線上增加一個數(shù)字表示與之對應(yīng)的另一個類的對象的個數(shù)。

? ?表示方式

? ? 多重性說明

? ?1..1

? ? 表示另一個類的一個對象只與一個該類對象有關(guān)系

? ?0..*?

? ? 表示另一個類的一個對象與零個或多個該類對象有關(guān)系

? ?1..*

? ? 表示另一個類的一個對象與一個或多個該類對象有關(guān)系

? ?0..1

? ? 表示另一個類的一個對象沒有或只與一個該類對象有關(guān)系

? ?m..n

? ? 表示另一個類的一個對象與最少m、最多n個該類對象有關(guān)系 (m<=n)


b.聚合關(guān)系: ? ? ? ??聚合關(guān)系(Aggregation)表示一個整體與部分的關(guān)系。通常在定義一個整體類后,再去分析這個整體類的組成結(jié)構(gòu),從而找出一些成員類,該整體類和成員類之間就形成了聚合關(guān)系。
? ? ? ?在聚合關(guān)系中,成員類是整體類的一部分,即成員對象是整體對象的一部分,但是成員對象可以脫離整體對象獨立存在。UML中,聚合關(guān)系用帶空心菱形的直線表示。?
?


public class Car

{

???private Engineengine;

??? public Car(Engineengine)

?? {

???????this.engine =engine;

??? }

???

??? public voidsetEngine(Engineengine)

??? {

???????this.engine =engine;

??? }

???……

}

publicclass Engine

{

???……

}

c.組合關(guān)系:

?組合關(guān)系(Composition)也表示類之間整體和部分的關(guān)系,但是組合關(guān)系中部分和整體具有統(tǒng)一的生存期。一旦整體對象不存在,部分對象也將不存在,部分對象與整體對象之間具有同生共死的關(guān)系。 ?在組合關(guān)系中,成員類是整體類的一部分,而且整體類可以控制成員類的生命周期,即成員類的存在依賴于整體類。UML中,組合關(guān)系用帶實心菱形的直線表示。

public class Head

{

???private Mouthmouth;

???public Head()

???{

? mouth= new Mouth();

???}

??? ……

}

public class Mouth

{

???……

}

d.依賴關(guān)系:

?依賴關(guān)系(Dependency)是一種使用關(guān)系,特定事物的改變有可能會影響到使用該事物的其他事物,在需要表示一個事物使用另一個事物時使用依賴關(guān)系。大多數(shù)情況下,依賴關(guān)系體現(xiàn)在某個類的方法使用另一個類的對象作為參數(shù) ?在UML中,依賴關(guān)系用帶箭頭的虛線表示,由依賴的一方指向被依賴的一方。

public class Driver

{

???public void drive(Carcar)

??? {

???????car.move();

??? }

???……

}

publicclass Car

{

??? public void move()

??? {

??????? ......

??? }

???……

}

e.泛化關(guān)系:

?泛化關(guān)系(Generalization)也就是繼承關(guān)系,也稱為“is-a-kind-of”關(guān)系,泛化關(guān)系用于描述父類與子類之間的關(guān)系,父類又稱作基類或超類,子類又稱作派生類。在UML中,泛化關(guān)系用帶空心三角形的直線來表示。 ?在代碼實現(xiàn)時,使用面向?qū)ο蟮睦^承機制來實現(xiàn)泛化關(guān)系,如在Java語言中使用extends關(guān)鍵字、在C++/C#中使用冒號“:”來實現(xiàn)。?

public class Person

{

???protected String name;

???protectedint age;

??? public void move()

??? {

???????……

??? }

??? public void say()

?? {

???????……

??? }

}

publicclass Student extends Person

{

??? private StringstudentNo;

??? public void study()

??? {

???????……

??? }

}

f.接口與實現(xiàn)關(guān)系 : 接口之間也可以有與類之間關(guān)系類似的繼承關(guān)系和依賴關(guān)系,但是接口和類之間還存在一種實現(xiàn)關(guān)系(Realization),在這種關(guān)系中,類實現(xiàn)了接口,類中的操作實現(xiàn)了接口中所聲明的操作。UML中,類與接口之間的實現(xiàn)關(guān)系用帶空心三角形的虛線來表示


public interface Vehicle

{

???public void move();

}

publicclass Ship implements Vehicle

{

??? public void move()

??? {

???……

??? }

}

publicclass Car implements Vehicle

{

??? public void move()

??? {

???……

??? }

}





總結(jié)

以上是生活随笔為你收集整理的设计模式基础之类与类图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。