返回

类图线条:记忆和理解

闲谈

理解类图中的线条对于准确解读软件设计至关重要。线条连接不同的类,表示类之间的关系。理解这些关系对于掌握软件架构和代码实现非常有帮助。

父子关系(派生、泛化)

线条类型: 实线箭头

指向: 从子类指向父类

含义: 表示子类继承了父类的属性和方法。子类可以扩展或覆盖父类的方法,但不能修改父类本身。

示例:

class Animal {
    public void eat() {}
}

class Dog extends Animal {
    public void bark() {}
}

接口实现

线条类型: 虚线箭头

指向: 从实现类指向接口

含义: 表示实现类实现了接口定义的方法。实现类必须提供接口中所有方法的实现。

示例:

interface Drawable {
    public void draw();
}

class Circle implements Drawable {
    public void draw() {
        // 实现draw()方法
    }
}

关联

线条类型: 实线

指向: 任意方向

含义: 表示两个类之间存在“使用-被使用”的关系。一个类可以使用另一个类的方法或属性。

示例:

class Car {
    private Engine engine;
}

class Engine {
    public void start() {}
}

组合

线条类型: 实线,空心菱形

指向: 从包含类指向被包含类

含义: 表示“拥有-被拥有”的关系。包含类拥有被包含类的实例。当包含类销毁时,被包含类也会销毁。

示例:

class House {
    private List<Room> rooms;
}

class Room {
    // ...
}

聚合

线条类型: 实线,空心菱形(不同于组合)

指向: 从聚合类指向被聚合类

含义: 表示“部分-整体”的关系。聚合类与被聚合类之间存在“拥有-被拥有”的关系,但被聚合类在销毁时不必依赖聚合类销毁。

示例:

class University {
    private List<Student> students;
}

class Student {
    // ...
}

记忆技巧

以下是一些记忆类图线条的技巧:

  • 实线箭头表示派生(父子关系)或关联。
  • 虚线箭头表示接口实现。
  • 空心菱形表示包含或聚合。
  • 箭头方向从子类指向父类或从实现类指向接口。

通过理解这些线条的含义,我们可以深入了解类之间的关系,从而增强我们对软件设计的理解。