类图(Class Diagrams)
类图是用来显示系统中类、接口及他们之间静态结构和关系的一种静态模型。
类图的基本部分
1.类(Class)
类是对一组具有相同属性、操作、关系和语义的对象的描述。
名称(Name):CamelCase 格式,首字母大写
属性(attributes):描述该类实例中包含的信息。
操作(Operation):是类所提供的服务,它可以由类的任何对象请求以影响其行为。
操作就是定义了对象所能做的事情。
2.关系
3.多重性
又称重数,用来说明关联的两个类之间的数量关系。
“n..m”,整数n定义所连接的最少对象的数目,m为最多(当不确定最大数时,最大数用*表示)
4.接口(Interface)
接口由一组对操作的定义组成,但是它不包括对实现操作进行详细的描述。
接口用于描述一个类或构件的一个服务的操作集。它描述了元素的外部可见操作。
只是对操作的声明而没有实现。
类图的阅读
从图中关系最复杂(即先最密集)的类开始阅读。
下面是一张比较容易理解的类图
对象图(Object Diagrams)
对象图描述的是系统在某一个特定时间点上的静态结构,是类图的实例和快照。
类图的基本部分
1.对象(Object)
一个对象是一个类的实例
2.链(Link)
是两个或多个对象之间的独立连接,是关联的实例。
对象图只列出属性和状态值,而不列出行为。因为对象图关心系统对象瞬间状态,而不是每个对象所具有的行为
类图和对象图的比较
类图 | 对象图 |
类具有3个分栏:名称、属性和操作 | 对象只有两个分栏:名称和属性 |
在类的名称分栏中只有类名 | 对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名” |
类的属性分栏定义了所有属性的特征 | 对象则只定义了属性的当前值,以便用于测试用例或例子中 |
类中列出了操作 | 对象图中不包括操作,因为对于同属于同一个类的对象而言,其操作是相同的。 |
类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。类代表的是对对象的分类所以必须说明可以参与关联的对象的数目 | 对象使用链连接、链拥有名称、角色,但是没有多重性。对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性。 |