fbpx
维基百科

類別圖

類別圖是軟件工程的統一建模語言一種靜態結構圖,該圖描述了系統的類別集合,類別的屬性和類別之間的關係。

UML 2.0 Diagrams

概述

類別圖是物件導向式的建模。他們一般都被用於概念建模(conceptual modelling)的系統分類的應用程序,並可將模型建模轉譯成程式碼。

 
一個類別有三個區域
  • 最上面是類別名稱
  • 中間部分包含類別的屬性
  • 底部部分包含類別的方法

為了進一步描述系統的行為,這些類圖可以輔之以狀態圖或UML狀態機。

成員

UML提供機制,以代表類的成員,如屬性和方法,對他們的其他信息。

指定一個類成員(即任何屬性或方法)的可見性有下列符號,必須擺在各成員的名字之前:

+ 公共 - 私有 # 保護(即對子類可見) ~ 包(即對包内其他成員可見) 

關係

 

實例層級的關係

外部連結

外部連結(External links)是物件之間的基本關係。

泛化

泛化(Generalization),即继承的反方向,指的是一个类(称为父类、父接口)具有另外的一个(或一些)类(称为子类、子接口)的共有功能。子类可视为其父类的特例,并可以增加新功能。用带空心三角形箭头的实线表示。

实现

实现(Realization)指的是一个class类实现interface接口(可以是多个)的功能;在Java中此类关系通过关键字implements明确标识。用带空心三角形箭头的虚线表示。

依赖

依赖关系(Dependency)可以简单的理解为一个类A使用到了另一个类B," ... uses a ...",被依赖的对象只是作为一种工具在使用,而并不持有对它的引用。而这种使用关系是具有偶然性、临时性的、非常弱的,但是B类的变化会影响到A;表现在代码层面,为类B作为参数被类A在某个method(方法)中使用。用带燕尾箭头的虚线表示。表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用的关系。

關聯

 
人與雜誌是一種關聯

一個關聯(Association)代表一個家族的聯繫。關聯可以命名,可以飾以角色名稱,有權指標,多重性,可視性,以及其他屬性(如相互关联和有方向的(带燕尾箭头的实线表示)关联)。在语义上是两个类之间、或类与接口之间一种强依赖关系,是一种长期的稳定的关系," ... has a ..." 。关联关系使一个类知道另外一个类的属性和方法;通常含有“知道”、“了解”的含义。某个对象会长期的持有另一个对象的引用,关联的两个对象彼此间没有任何强制性的约束,只要二者同意,可以随时解除关系或是进行关联,它们在生命期问题上没有任何约定。被关联的对象还可以再被别的对象关联,所以关联是可以共享的。 在代码层面上,被关联类以类属性的形式出现在关联类中,也可能是关联类引用了一个类型为被关联类的全局变量。目前定義有五種不同類型的關聯。雙向(Bi-directional)和單向(uni-directional)的關聯是最常見的。

 
Class diagram showing Aggregation between two classes

聚合

聚合(Aggregate)是表示整体与部分的一类特殊的关联關係,是“弱”的包含(" ... owns a ..." )关系,成分類別可以不依靠聚合類別而单独存在,可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享(sharable)。例如,池塘与(池塘中的)鸭子。再例如教授課程就是一種聚合關係。又例如图书馆包含(owns a) 学生和书籍。即使没有图书馆,学生亦可以存在,学生和图书馆之间的关系是聚集。聚集可能不涉及兩個以上的類別。圖形以空心的菱形箭尾与实线来表示。

// Aggregation class Pond { private:  std::vector<Duck*> ducks; }; 

組成

组成(Composition)關係,是一类“强”的整体与部分的包含关系(" ... is a part of ...")。成分類別必須依靠合成類別而存在。整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。合成类别完全拥有成分类别,负责创建、销毁成分类别。例如汽车与化油器,又例如公司与公司部门就是一種組成關係。圖形以實心的菱形箭尾与实线表示。

// Composition class Car { private:  // Car is the owner of carburetor.  // Carburetor is created when Car is created,  // it is destroyed when Car is destroyed.  Carburetor carb; }; 

关联、組成和聚集的差異

当一个类作为另一个类某个方法的参数时,为关联。[需要較佳来源]

两者的差别主要描述了子类的生命周期的不同。组合关系中,一旦父类被销毁子类也会随之销毁;聚合关系中,子类的生命周期与父类独立。[1]例如,一个大学包含若干个系(如化学系),每个系由若干名教授。如果大学撤销,这些系也就不复存在了,但这些教授仍会继续存在。还需注意,一名教授可以在不同系甚至不同学校兼职,而一个系不能属于两所大学。所以,大学与系之间是组成关系,而系与教授是聚合关系。  

類別層級的關係

概括

概括(Generalization),是指類別與類別之間的共通性,通常會具有繼承(inherit)的關係。圖形以實線和空心箭頭來表示。

實現

UML建模時,一個實現(realization)關係是兩個模型元素之間的關係,其中一個模型元素(客戶端)實現的行為,其他模型元素(供應商)指定。圖形以虛線和空心箭頭來表示。

一般關係

依賴

 
"Car" 與 "Wheel" 是一種弱化的依賴

依賴(Dependency)是一種弱化形式的關係,表示一類別依賴於另外的類別,因為類別在某個時間點使用另一個類別。

多重

關聯多重性(Multiplicity)是用來定義參與物件數量,每個參與類別都必須指定多重性值,例如class A會有多少個instance與class B的多少個instance關連在一起,在現實生活中,一個汽車駕駛與汽車個數就是多重關係,可以是一對多,或是多對多。

参考文献

  1. ^ UML 基础: 类图. [2012-02-20]. (原始内容于2016-03-04). 

外部連結

類別圖, 是軟件工程的統一建模語言一種靜態結構圖, 該圖描述了系統的類別集合, 類別的屬性和類別之間的關係, diagrams, 目录, 概述, 成員, 關係, 實例層級的關係, 外部連結, 泛化, 实现, 依赖, 關聯, 聚合, 組成, 关联, 組成和聚集的差異, 類別層級的關係, 概括, 實現, 一般關係, 依賴, 多重, 参考文献, 外部連結概述, 编辑是物件導向式的建模, 他們一般都被用於概念建模, conceptual, modelling, 的系統分類的應用程序, 並可將模型建模轉譯成程式碼, 一個類別. 類別圖是軟件工程的統一建模語言一種靜態結構圖 該圖描述了系統的類別集合 類別的屬性和類別之間的關係 UML 2 0 Diagrams 目录 1 概述 2 成員 3 關係 3 1 實例層級的關係 3 1 1 外部連結 3 1 2 泛化 3 1 3 实现 3 1 4 依赖 3 1 5 關聯 3 1 6 聚合 3 1 7 組成 3 1 8 关联 組成和聚集的差異 3 2 類別層級的關係 3 2 1 概括 3 2 2 實現 3 3 一般關係 3 3 1 依賴 3 3 2 多重 4 参考文献 5 外部連結概述 编辑類別圖是物件導向式的建模 他們一般都被用於概念建模 conceptual modelling 的系統分類的應用程序 並可將模型建模轉譯成程式碼 一個類別有三個區域 最上面是類別名稱 中間部分包含類別的屬性 底部部分包含類別的方法為了進一步描述系統的行為 這些類圖可以輔之以狀態圖或UML狀態機 成員 编辑UML提供機制 以代表類的成員 如屬性和方法 對他們的其他信息 指定一個類成員 即任何屬性或方法 的可見性有下列符號 必須擺在各成員的名字之前 公共 私有 保護 即對子類可見 包 即對包内其他成員可見 關係 编辑 實例層級的關係 编辑 外部連結 编辑 外部連結 External links 是物件之間的基本關係 泛化 编辑 泛化 Generalization 即继承的反方向 指的是一个类 称为父类 父接口 具有另外的一个 或一些 类 称为子类 子接口 的共有功能 子类可视为其父类的特例 并可以增加新功能 用带空心三角形箭头的实线表示 实现 编辑 实现 Realization 指的是一个class类实现interface接口 可以是多个 的功能 在Java中此类关系通过关键字implements明确标识 用带空心三角形箭头的虚线表示 依赖 编辑 依赖关系 Dependency 可以简单的理解为一个类A使用到了另一个类B uses a 被依赖的对象只是作为一种工具在使用 而并不持有对它的引用 而这种使用关系是具有偶然性 临时性的 非常弱的 但是B类的变化会影响到A 表现在代码层面 为类B作为参数被类A在某个method 方法 中使用 用带燕尾箭头的虚线表示 表示一个类依赖于另外一个类的定义 依赖关系仅仅描述了类与类之间的一种使用与被使用的关系 關聯 编辑 人與雜誌是一種關聯 一個關聯 Association 代表一個家族的聯繫 關聯可以命名 可以飾以角色名稱 有權指標 多重性 可視性 以及其他屬性 如相互关联和有方向的 带燕尾箭头的实线表示 关联 在语义上是两个类之间 或类与接口之间一种强依赖关系 是一种长期的稳定的关系 has a 关联关系使一个类知道另外一个类的属性和方法 通常含有 知道 了解 的含义 某个对象会长期的持有另一个对象的引用 关联的两个对象彼此间没有任何强制性的约束 只要二者同意 可以随时解除关系或是进行关联 它们在生命期问题上没有任何约定 被关联的对象还可以再被别的对象关联 所以关联是可以共享的 在代码层面上 被关联类以类属性的形式出现在关联类中 也可能是关联类引用了一个类型为被关联类的全局变量 目前定義有五種不同類型的關聯 雙向 Bi directional 和單向 uni directional 的關聯是最常見的 Class diagram showing Aggregation between two classes 聚合 编辑 聚合 Aggregate 是表示整体与部分的一类特殊的关联關係 是 弱 的包含 owns a 关系 成分類別可以不依靠聚合類別而单独存在 可以具有各自的生命周期 部分可以属于多个整体对象 也可以为多个整体对象共享 sharable 例如 池塘与 池塘中的 鸭子 再例如教授與課程就是一種聚合關係 又例如图书馆包含 owns a 学生和书籍 即使没有图书馆 学生亦可以存在 学生和图书馆之间的关系是聚集 聚集可能不涉及兩個以上的類別 圖形以空心的菱形箭尾与实线来表示 Aggregation class Pond private std vector lt Duck gt ducks 組成 编辑 组成 Composition 關係 是一类 强 的整体与部分的包含关系 is a part of 成分類別必須依靠合成類別而存在 整体与部分是不可分的 整体的生命周期结束也就意味着部分的生命周期结束 合成类别完全拥有成分类别 负责创建 销毁成分类别 例如汽车与化油器 又例如公司与公司部门就是一種組成關係 圖形以實心的菱形箭尾与实线表示 Composition class Car private Car is the owner of carburetor Carburetor is created when Car is created it is destroyed when Car is destroyed Carburetor carb 关联 組成和聚集的差異 编辑 当一个类作为另一个类某个方法的参数时 为关联 需要較佳来源 两者的差别主要描述了子类的生命周期的不同 组合关系中 一旦父类被销毁子类也会随之销毁 聚合关系中 子类的生命周期与父类独立 1 例如 一个大学包含若干个系 如化学系 每个系由若干名教授 如果大学撤销 这些系也就不复存在了 但这些教授仍会继续存在 还需注意 一名教授可以在不同系甚至不同学校兼职 而一个系不能属于两所大学 所以 大学与系之间是组成关系 而系与教授是聚合关系 類別層級的關係 编辑 概括 编辑 概括 Generalization 是指類別與類別之間的共通性 通常會具有繼承 inherit 的關係 圖形以實線和空心箭頭來表示 實現 编辑 UML建模時 一個實現 realization 關係是兩個模型元素之間的關係 其中一個模型元素 客戶端 實現的行為 其他模型元素 供應商 指定 圖形以虛線和空心箭頭來表示 一般關係 编辑 依賴 编辑 Car 與 Wheel 是一種弱化的依賴 依賴 Dependency 是一種弱化形式的關係 表示一類別依賴於另外的類別 因為類別在某個時間點使用另一個類別 多重 编辑 關聯多重性 Multiplicity 是用來定義參與物件數量 每個參與類別都必須指定多重性值 例如class A會有多少個instance與class B的多少個instance關連在一起 在現實生活中 一個汽車駕駛與汽車個數就是多重關係 可以是一對多 或是多對多 参考文献 编辑 UML 基础 类图 2012 02 20 原始内容存档于2016 03 04 外部連結 编辑Introduction to UML 2 Class Diagrams 页面存档备份 存于互联网档案馆 UML 2 Class Diagram Guidelines 页面存档备份 存于互联网档案馆 IBM Class diagram Introduction 页面存档备份 存于互联网档案馆 OMG UML 2 2 specification documents 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title 類別圖 amp oldid 71012277, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。