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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UML类图操作(二)

發(fā)布時(shí)間:2025/3/17 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UML类图操作(二) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在上一篇中講了類圖的操作以及介紹,當(dāng)然類不是單獨(dú)存在的,類與類之間存在著關(guān)系,UML提供了類之間的關(guān)系的表達(dá)方式。

UML類圖操作(一)

?

下面簡單介紹設(shè)置操作,雙擊關(guān)系線,然后找到Detail

1.關(guān)聯(lián)關(guān)系(Association)

關(guān)聯(lián)關(guān)系:屬于結(jié)構(gòu)關(guān)系,對象與對象之間的關(guān)系

1.1.1單向關(guān)聯(lián)

?

class Man {public Car car; } class Car {}

?

?

?

?

1.1.2雙向關(guān)聯(lián)

?

?

?

class Studen {public Grade grade; } class Grade {public Student student; }

?

1.1.3自關(guān)聯(lián)

class ClassA {public ClassA classA; }

?

1.1.4多重關(guān)聯(lián):

1..1 : 表示另一個(gè)類的一個(gè)對象只與該類的一個(gè)對象有關(guān)系
0..*:表示另一個(gè)類的一個(gè)對象與該類的零個(gè)或多個(gè)對象有關(guān)系

1..*:表示另一個(gè)類的一個(gè)對象與該類的一個(gè)或多個(gè)對象有關(guān)系

0..1:表示另一個(gè)類的一個(gè)對象沒有或者只有一個(gè)對象有關(guān)系

m..n:表示另一個(gè)類的一個(gè)對象與該類最少有m個(gè)最多有n個(gè)對象有關(guān)系

這里值得注意的是:有*的關(guān)聯(lián)性關(guān)系就有數(shù)組

?

1.2聚合關(guān)系(Aggregation)

聚合關(guān)系:表示整體與部分關(guān)系,部分是整體的一部分,也可以脫離整理獨(dú)立存在。也就是說car被回收,gasoline不會(huì)跟car一起被回收。

?

class Car{public Gasoline gasoline;//構(gòu)造注入public Car(Gasoline gasoline){this.gasoline = gasoline;}//屬性注入public Gasoline Gasoline{get { return gasoline; }set { gasoline = value; }}}class Gasoline{}

這里注意的是:通過構(gòu)造函數(shù)注入;通過屬性注入;

?

?

?

1.3組合關(guān)系

組合關(guān)系:也是整體和部分的關(guān)系,但是組合關(guān)系中整體控制部分的生命周期,也就是說你在使用car對象的時(shí)候,在它的構(gòu)造函數(shù)里面創(chuàng)建wheel,在回收car的時(shí)候wheel同時(shí)被回收

class Car{public Wheel wheel;public Car(){//實(shí)例化wheel = new Wheel();}}class Wheel{}

2.依賴關(guān)系(Dependency)

依賴關(guān)系:依賴關(guān)系屬于一種使用關(guān)系,比如司機(jī)使用車,但是這個(gè)車會(huì)變化,可以開自行車,可以開轎車。。一般都是某個(gè)類使用另一個(gè)類里面的對象作為參數(shù)使用

所以我們一般用到的3種方式

(1)將一個(gè)對象作為類的參數(shù),比如通過構(gòu)造函數(shù)傳參 public Car (A a){};

(2)將一個(gè)對象作為參數(shù)傳入類的方法,比如 :public void A(Car car);

(3)在一個(gè)類里面調(diào)用靜態(tài)對象的方法,比如 Car.Move();

?

?

下面我們使用第一種方式

class Driver{public Driver(Car car){car.Move();}}class Car{public void Move(){ }}

?

3.泛化關(guān)系(Generalization)

泛化關(guān)系:俗稱繼承關(guān)系,子類繼承父類。

?

public class Subclass : Base{}public class Base{}

4.實(shí)現(xiàn)關(guān)系(Realization)

實(shí)現(xiàn)關(guān)系:這個(gè)是屬于接口之間繼承的關(guān)系

?

class Subclass : IBase{public void Move(){}}interface IBase{void Move();}

?

?

?

新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!

總結(jié)

以上是生活随笔為你收集整理的UML类图操作(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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