UML从零开始之类图
2014-03-16 20:55
260 查看
类图(Class diagram)是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。类图(Class diagram)最基本的元素是类或者接口
如果有属性则每一个属性必须有名字,还可以有其它描述信息(如:可见性、数据类型、缺省值等)
如果有操作也必须有名字,还可选的信息包括:可见性、参数的名字、参数类型、参数缺省值和操作的返回值类型。
类名书写规范:正体字说明类是可被实例化的,斜体字说明类为抽象类。
属性和方法书写规范:修饰符 [描述信息] 属性、方法名称 [参数] [:返回类型|类型]
属性和方法之前可附加的可见性修饰符:
加号(+)表示public;减号(-)表示private;#号表示protected;省略这些修饰符表示具有package(包)级别的可见性。
如果属性或方法具有下划线,则说明它是静态的。
描述信息使用 << 开头和使用 >> 结尾。
类的性质是由一个属性、一个赋值方法和一个取值方法组成。书写方式和方法类似。
Aggregation:特殊关联关系,描述了“has a”指明一个聚集(整体)和组成部分之间的关系表示整体对象拥有部分对象。
Composition:语义更强的聚合,部分和整体具有相同的生命周期
UML中泛化有三个要求:
1.子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有。
2.子类中除了与父类一致的信息外还包括额外的信息
3.可以使用父类的实例的地方,也可以使用子类的实例
如:类Circle、Rectangle实现了接口Shape的操作
假设A类的变化引起了B类的变化,则说明B类依赖A类。
依赖有如下三种情况:
1.A类是B类的一个成员变量
2.A类是B类的方法当中的一个参数
3.A类向B类发送消息,从而影响B类的发生
1.类图中的事物
1.1 Class
从上到下分类名、属性和操作。类名是必须的。如果有属性则每一个属性必须有名字,还可以有其它描述信息(如:可见性、数据类型、缺省值等)
如果有操作也必须有名字,还可选的信息包括:可见性、参数的名字、参数类型、参数缺省值和操作的返回值类型。
类名书写规范:正体字说明类是可被实例化的,斜体字说明类为抽象类。
属性和方法书写规范:修饰符 [描述信息] 属性、方法名称 [参数] [:返回类型|类型]
属性和方法之前可附加的可见性修饰符:
加号(+)表示public;减号(-)表示private;#号表示protected;省略这些修饰符表示具有package(包)级别的可见性。
如果属性或方法具有下划线,则说明它是静态的。
描述信息使用 << 开头和使用 >> 结尾。
类的性质是由一个属性、一个赋值方法和一个取值方法组成。书写方式和方法类似。
1.2 Interface
一组操作的集合,只有操作的声明没有实现1.3 抽象类
不能被实例化的类一般至少包含一个抽象操作1.4 模板类
参数化的类,在编译时把模板参数绑定到不同的数据类型,产生不同的类2.类图中的关系
2.1 Dependency
关联是一种结构化的关系。包括普通关联、聚合(Aggregation)、组合(Composition)。Aggregation:特殊关联关系,描述了“has a”指明一个聚集(整体)和组成部分之间的关系表示整体对象拥有部分对象。
Composition:语义更强的聚合,部分和整体具有相同的生命周期
2.2 Generalization
泛化是父类和子类之间的关系,子类继承父类的所有结构和行为。在子类中增加新的结构和行为,也可以覆写父类的行为。(A是B和C的父类,B、C具有公共类A,说明A是B、C的一般化)UML中泛化有三个要求:
1.子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有。
2.子类中除了与父类一致的信息外还包括额外的信息
3.可以使用父类的实例的地方,也可以使用子类的实例
2.3 Realization
实现对应于类和接口之间的关系如:类Circle、Rectangle实现了接口Shape的操作
2.4 Dependency
依赖是一种使用关系。描述了一个类的变化对依赖它的类产生影响的情况。依赖是单向的假设A类的变化引起了B类的变化,则说明B类依赖A类。
依赖有如下三种情况:
1.A类是B类的一个成员变量
2.A类是B类的方法当中的一个参数
3.A类向B类发送消息,从而影响B类的发生
相关文章推荐
- UML图之类图,对象图和包图
- UML之类图
- UML2.0之类图详解
- Thinking in UML 学习笔记(三)——UML核心视图之类图
- 浅析UML之类图的正向工程和逆向工程
- UML学习之类图
- UML之类间关系
- UML学习之类图
- UML之类图中的各种关系
- UML之类图
- UML之类图
- 从零开始学Scala系列(六)之类(Classes)和对象(Objects)
- UML之类图
- UML (Unified Modeling Language )之类图和关系
- UML9种图之类图和对象图的组成
- 从零开始学C++之RTTI、dynamic_cast、typeid、类与类之间的关系uml
- 从零开始学C++之RTTI、dynamic_cast、typeid、类与类之间的关系uml
- UML学习之类图
- UML之类图
- UML之类图