UML中的类
一个类在UML中是由一个有三个隔间的矩形来表示的。它们是
- 类
- 属性
- 操作()
类
在UML图中的第一个隔间包含了类的名字,UML建议将其放在中间,并以粗体字显示。它还包含一般的属性,如包的所有者或定型。
属性
第二个隔间包含类的属性。属性是分类器中的特征,它描述了分类器的实例可能持有的数值范围。
操作()
第三个区间包含类的操作。操作是可以从一个对象请求的影响其行为的服务。
UML 推荐属性和操作的名称都是左对齐的,并且是普通的类型。
当表示一个类时,你可以选择显示
- 属性而不是操作
- 操作而不是属性
- 属性和操作
或者如果你不想显示一个类的任何属性或操作,你可以简单地用一个普通的矩形来表示它。
你为类选择的名字应该直接来自于问题域的词汇表。这有助于你理解每个类应该做什么,以及它应该如何与其他类发生关系。
如果你在命名一个类的时候遇到困难,这可能意味着它的定义很差,或者没有任何有用的作用,应该被抛弃。
下面是一个标准的 UML 命名类的惯例。
类的名字应该是
- 是单数名词
- 以大写字母开头
尽管不是UML的建议,如果你需要给一个类的名字使用一个以上的词,你应该
- 把这些词放在一起
- 将每个词的首字母大写
对于属性和操作的命名,没有严格的UML约定。但通常的做法是,在任何使用多于一个单词的属性或操作名称中,将单词推到一起。
这类名称中第一个词的首字母通常不大写,但第一个词之后的每个词的首字母都大写。
UML中的对象
UML的对象符号与用于类的符号非常相似。就像类一样,一个对象用一个矩形表示--有或没有隔板。
但与类的名字相反,对象的名字总是
- 下划线
- 在普通字体中
一个对象的名字可以包括它所属的类的名字。在这种情况下,类名跟在对象名后面,两者之间用冒号隔开。
例如,假设对象BankTeller属于Employee类。所以它的对象名是bankTeller:Employee。
你可以表示一个其名称或特定身份不相关或未指定的对象。
你可以通过以下方式做到这一点
- 在类的名称下划线
- 在它前面加一个冒号
在一个银行的工资系统中,没有必要指定与该系统有关的对象是出纳员还是经理。
这些对象可以用匿名的方式表示,只用他们的类名。所以,你可以把他们每个人都命名为:Employee。
类图和对象图
类图是UML中最重要的图的类型之一。
这是因为它们提供了一个清晰的视图,说明一个拟议的系统和它的问题域之间的关系。而且,它们可以与许多开发工具结合使用,以生成骨架代码(类的定义)。
类图只显示系统的静态结构。
它们可以用来显示
- 单一的类
- 大群的类
- 类之间的关系
但它们不能显示类的动态行为或一个类完成一个用例所需的步骤序列。
类图可以描述系统中的各种抽象层次。
它们可以通过显示包来提供一个高层次的视图,包是处理系统功能的特定部分的相关类组。
或者,它们可以专注于单个类的属性和操作的精确细节。
类图显示了一个系统的总体概况。
对象图与类图非常相似--但它们提供了一个系统在某一特定时间点上的视图,即类被实例化时的样子。它们对于展示系统功能的具体例子很有用。
总结
在UML中,对象和类都是由一个矩形来表示的。一个类在矩形里有三个格子,用来显示它的名字、属性和操作。一个对象有两个格子:一个是名称,一个是属性和它们的值。
类图显示了类的静态结构,而对象图则描述了类在创建实例时的样子。类图可以显示单一的类,类之间的关系,以及包。
在UML中,建议(但不是强制性的)类名应该用粗体字,没有空格,并且每个词的首字母大写。对象名称应该用下划线和普通字体。