UML类图样例
详细说明如下:
类(class)通过矩形框表示。类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常是字段和属性。第三层是类的操作,通常是方法和行为。
‘+’表示public,‘-’表示private,‘#’表示protected。
class Bird : public Animal
{}
说明:
企鹅和气候两个类,企鹅需要‘知道’气候的变化,需要了解气候规律。当一个类‘知道’另一个类时,可以用关联(association)。关联关系用实线箭头表示。
class Penguin : public Bird
{
private:
Climate climate; // 在企鹅Penguin中,引用到气候Climate对象
}
每只大雁都属于一个雁群,一个雁群可以有很多只大雁,所以它们之间就满足聚合(aggregation)关系。聚合表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分[DPE]。
class WideGooseAggregate
{
private:
WideGoose[] arrayWideGoose;
}
合成(composition,也有翻译成‘组合’)是一种强的‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样[DPE]。鸟和翅膀就是合成关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。合成关系用实心的菱形+实线箭头来表示。
class Bird
{
public:
public Bird()
{
wing = new Wing();
}
private:
Wing wing;
}
动物有几大特征,比如有新陈代谢,能繁殖。动物要有生命力,需要氧气、水及食物等。它们之间属于依赖关系(dependency),用虚线箭头表示。
class Animal
{
public:
Metabolism (Oxygen oxygen, Water water){}
}