使用4种不同的方式来建模:
1. 同时显示属性和服务
2. 不显示属性和服务
3. 只显示属性
4. 只显示服务
图3.13以Clock类为例说明了在UML中表示类的不同方式。图3.13(a)给出完整的具有可见说明的属性和服务的类。图3.13(b)则是在隐藏类的属性和服务的表示方法,显而易见,这种表示方法简单但是信息量很少。不同表示方法的使用场合不同,主要取决于绘制该图形的目标,如果我们要详细描述类的成员以及它们的访问控制属性,应当使用类似图3.13(a)的方式;如果我们的着眼点在于类之间的关系,并不关心类内部的东西则使用类似图3.13(b)的方式。而图3.13(c)和图3.13(d)则表示只显示属性和只显示服务的类图。这种表示方法是因为当属性和服务列表不断增大时,单个类就可以成为一个模型,尤其在该类不是模型的主要焦点时。为了表达系统的设计可以建模任意多个类图。应明智地选择合适显示对于正在建模的类图至关重要的部分。图3.13(e)隐藏了属性和操作,读者无法知道它们是否存在。而图3.13(b)是告诉读者类中没有属性和操作。它们是不同的。
Clock Clock
-Hour : int -Minute : int -Second : int +ShowTime() : void +SetTime(NewH:int=0, NewM:int=0, NewS:int=0):void 图3.13(b)Clock 类的无属性和服务表示
Clock
+ShowTime() : void
+SetTime(NewH:int
=0, NewM:int=0,
NewS:int=0):void 图3.13(a)Clock 类的完整表示
图3.13(e)Clock 类的隐藏属性和服务表示 Clock -Hour : int -Minute : int -Second : int 图3.13(c)Clock 类的只显示属性表示 图3.13(d)Clock 类的只显示服务表示
根据图的详细程度,每个属性可以包括其访问控制属性、名称、类型、默认值和约束特性,最简单的情况是只表示出它的名称,其余部分都是可选的。