天天看點

類與類之間的關系圖(Class Diagram,UML圖) 二、類的構成 三、類之間的關系(Relationship) 1、單向關聯 2、雙向關聯 3、自身關聯 4、多元關聯(N-ary Association) 5、泛化(Generalization) 6、依賴(Dependency) 7、聚合(Aggregation) 8、組合(Composite) 四、總結

  一、簡介

類是對象的集合,展示了對象的結構以及與系統的互動行為。類主要有屬性(Attribute)和方法(Method)構成,屬性代表對象的狀态,如果屬性被儲存到資料庫,此稱之為“持久化”;方法代表對象的操作行為,類具有繼承關系,可以繼承于父類,也可以與其他的Class進行互動。

       類圖展示了系統的邏輯結構,類和接口的關系。

二、類的構成

類主要有屬性和方法構成。比如商品屬性有:名稱、價格、高度、寬度等;商品的方法有:計算稅率,獲得商品的評價等等。如下圖

類與類之間的關系圖(Class Diagram,UML圖) 二、類的構成 三、類之間的關系(Relationship) 1、單向關聯 2、雙向關聯 3、自身關聯 4、多元關聯(N-ary Association) 5、泛化(Generalization) 6、依賴(Dependency) 7、聚合(Aggregation) 8、組合(Composite) 四、總結

關聯(Association)

兩個相對獨立的對象,當一個對象的執行個體與另外一個對象的特定執行個體存在固定關系時,這兩個對象之間就存在關聯關系。

A1->A2: 表示A1認識A2,A1知道A2的存在,A1可以調用A2中的方法和屬性

場景:訂單和商品,訂單中包括商品,但是商品并不了解訂單的存在。

類與類之間的單向關聯圖:

類與類之間的關系圖(Class Diagram,UML圖) 二、類的構成 三、類之間的關系(Relationship) 1、單向關聯 2、雙向關聯 3、自身關聯 4、多元關聯(N-ary Association) 5、泛化(Generalization) 6、依賴(Dependency) 7、聚合(Aggregation) 8、組合(Composite) 四、總結

C#代碼:

Public class Order

{

       Public List<Product> order;

Public void AddOrder(Product product )

       {

              order.Add(product);

}            

}

Public Class Product

代碼表現為:Order(A1)中有Product(A2)的變量或者引用

B1-B2: 表示B1認識B2,B1知道B2的存在,B1可以調用B2中的方法和屬性;同樣B2也知道B1的存在,B2也可以調用B1的方法和屬性。

場景:訂單和客戶,訂單屬于客戶,客戶擁有一些特定的訂單

類與類之間的雙向關聯圖

類與類之間的關系圖(Class Diagram,UML圖) 二、類的構成 三、類之間的關系(Relationship) 1、單向關聯 2、雙向關聯 3、自身關聯 4、多元關聯(N-ary Association) 5、泛化(Generalization) 6、依賴(Dependency) 7、聚合(Aggregation) 8、組合(Composite) 四、總結

C#代碼

Public class User

       Public List<Order> GetOrder()

}      return new List<Order>();

Public Class Order

       Public User GetUserByOrderID(string OrderId )

              Return new User();

同一個類對象之間的關聯

類與類之間自身關聯圖

類與類之間的關系圖(Class Diagram,UML圖) 二、類的構成 三、類之間的關系(Relationship) 1、單向關聯 2、雙向關聯 3、自身關聯 4、多元關聯(N-ary Association) 5、泛化(Generalization) 6、依賴(Dependency) 7、聚合(Aggregation) 8、組合(Composite) 四、總結

多個對象之間存在關聯

場景:公司雇用員工,同時公司需要支付工資給員工

類與類之間的多元關聯圖:

類與類之間的關系圖(Class Diagram,UML圖) 二、類的構成 三、類之間的關系(Relationship) 1、單向關聯 2、雙向關聯 3、自身關聯 4、多元關聯(N-ary Association) 5、泛化(Generalization) 6、依賴(Dependency) 7、聚合(Aggregation) 8、組合(Composite) 四、總結

類與類的繼承關系,類與接口的實作關系。

場景:父與子、動物與人、植物與樹、系統使用者與B2C會員和B2E會員的關系

類與類之間的泛化圖:

類與類之間的關系圖(Class Diagram,UML圖) 二、類的構成 三、類之間的關系(Relationship) 1、單向關聯 2、雙向關聯 3、自身關聯 4、多元關聯(N-ary Association) 5、泛化(Generalization) 6、依賴(Dependency) 7、聚合(Aggregation) 8、組合(Composite) 四、總結

系統的使用者包括:B2C會員、B2B會員和B2E會員。

接口的實作,動物都有吃的行為,而人是動物的一個具體執行個體,實作具體Eat的動作

類與類之間的關系圖(Class Diagram,UML圖) 二、類的構成 三、類之間的關系(Relationship) 1、單向關聯 2、雙向關聯 3、自身關聯 4、多元關聯(N-ary Association) 5、泛化(Generalization) 6、依賴(Dependency) 7、聚合(Aggregation) 8、組合(Composite) 四、總結

類A要完成某個功能必須引用類B,則A與B存在依賴關系,依賴關系是弱的關聯關系。C#不建議雙相依賴,也就是互相引用

場景:本來人與電腦沒有關系的,但由于偶然的機會,人需要用電腦寫程式,這時候人就依賴于電腦。

類與類的依賴關系圖

在程式中一般為 using 引用。

類與類之間的關系圖(Class Diagram,UML圖) 二、類的構成 三、類之間的關系(Relationship) 1、單向關聯 2、雙向關聯 3、自身關聯 4、多元關聯(N-ary Association) 5、泛化(Generalization) 6、依賴(Dependency) 7、聚合(Aggregation) 8、組合(Composite) 四、總結

當對象A被加入到對象B中,成為對象B的組成部分時,對象B和對象A之間為聚合關系。聚合是關聯關系的一種,是較強的關聯關系,強調的是整體與部分之間的關系。

場景:商品和他的規格、樣式就是聚合關系。

類與類的聚合關系圖

類與類之間的關系圖(Class Diagram,UML圖) 二、類的構成 三、類之間的關系(Relationship) 1、單向關聯 2、雙向關聯 3、自身關聯 4、多元關聯(N-ary Association) 5、泛化(Generalization) 6、依賴(Dependency) 7、聚合(Aggregation) 8、組合(Composite) 四、總結

       對象A包含對象B,對象B離開對象A沒有實際意義。是一種更強的關聯關系。人包含手,手離開人的軀體就失去了它應有的作用。

場景: Window窗體由滑動條slider、頭部Header 和工作區Panel組合而成。

類與類的組合關系圖

類與類之間的關系圖(Class Diagram,UML圖) 二、類的構成 三、類之間的關系(Relationship) 1、單向關聯 2、雙向關聯 3、自身關聯 4、多元關聯(N-ary Association) 5、泛化(Generalization) 6、依賴(Dependency) 7、聚合(Aggregation) 8、組合(Composite) 四、總結

版權

作者:靈動生活 郝憲玮

如果你認為此文章有用,請點選底端的【推薦】讓其他人也了解此文章,

類與類之間的關系圖(Class Diagram,UML圖) 二、類的構成 三、類之間的關系(Relationship) 1、單向關聯 2、雙向關聯 3、自身關聯 4、多元關聯(N-ary Association) 5、泛化(Generalization) 6、依賴(Dependency) 7、聚合(Aggregation) 8、組合(Composite) 四、總結

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。