UML中類圖(Class Diagram)的關係整理,umldiagram

來源:互聯網
上載者:User

UML中類圖(Class Diagram)的關係整理,umldiagram
什麼是UML類圖?

類圖顯示了一組類、介面、協作以及他們之間的關係。在UML中問題域最終要被逐步轉化,通過類來建模,通過程式設計語言構建這些類從而實現系統。類加上他們之間的關係就構成了類圖,類圖中還可以包含介面、包等元素,也可以包括對象、鏈等執行個體。

類與類之間的關係1.依賴關係(Dependency)

單向,表示一個類依賴於另一個類的定義,其中一個類的變化將影響另外一個類,是一種“use a”的關係

如果A依賴於B,則B表現為A的局部變數,方法參數,靜態方法調用等

public class Person {      public void doSomething(){          Card card = new Card();//局部變數          ....      }  } 
public class Person {      public void doSomething(Card card){//方法參數          ....      }  }  
public class Person {      public void doSomething(){          int id = Card.getId();//靜態方法調用          ...      }  }  
2.關聯關係(Association)

單向或雙向(通常我們需要避免使用雙向關聯關係),是一種"has a"關係,如果A單向關聯B,則可以說A has a B,通常表現為全域變數

public class Person {      public Phone phone;            public void setPhone(Phone phone){                this.phone = phone;      }            public Phone getPhone(){                  return phone;      }  }  
3.彙總關係(Aggregation)

單向,關聯關係的一種,與關聯關係之間的區別是語義上的,關聯的兩個對象通常是平等的,彙總則一般不平等,有一種整體和局部的感覺,實現上區別不大

此處也有空心的菱形加箭頭表示,此處無箭頭

Team由Person組成,其生命週期不同,整體不存在了,部分依然存在,當前Team解散了,人還在,還可以加入別的組

public class Team {      public Person person;            public Team(Person person){          this.person = person;      }  }  
4.組合關係(Composition)

單向,是一種強依賴的特殊彙總關係

此處也有實心的菱形加箭頭表示,此處無箭頭

Head,Body,Arm和Leg組合成People,其生命週期相同,如果整體不存在了,部分也將消亡

public class Person {      public Head head;      public Body body;      public Arm arm;      public Leg leg;            public Person(){          head = new Head();          body = new Body();          arm = new Arm();          leg = new Leg();      }  }  
5.繼承關係(Inheritance)

類實現介面,類繼承抽象類別,類繼承父類都屬於這種關係

 

實現(Realization):即"like a"關係,類實現介面屬於這種關係

泛化(Generalization):即"is a"關係,類繼承抽象類別,類繼承父類都屬於這種關係

總結:類與類之間的關係可以根據關係的強度依次分為以下五種:

依賴關係(Dependency)---關聯關係(Association)---彙總(Aggregation)---組合(Composition)---泛化(inheritance)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.