UML类图——类之间的关系

关联关系(实线箭头)

是一种结构化关系,表示一类对象与另一类对象之间有联系。Java,c++,c#等编程语言在实现关联关系时,通常将一个类的对象作为另一个类的属性

- 双向关联
- 单向关联
- 自关联
- 多重性关联

聚合关系(带空心菱形的实线箭头)

表示一个整体与部分之间的关系,在聚合关系中成员类是整体类的一部分,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在

    public class Car{
        private Engine engine;
        public Car (Engine engine){
            this.engine = engine;
        }
        public void setEngine(Engine engine){
            this.engine = engine;
        }
    }
    public class Engine{
        ......
    }
Engine是Car的一部分,但是Engine可以脱离Car单独存在,在Car中不直接实例化Engine,而是通过构造方法或者setter方法将在类外部实例化好的Engine对象以参数的形式传入到Car中,这种传入方法叫注入(Injection),Car和Engine实例化时刻不同,因此他们之间不存在生命周期的制约关系。

组合关系(带实心菱形的实线箭头)

表示整体与部分之间的关系,但是整体与部分是共同生死的关系.

    public class Head{
        private Mouth mouth;
        public Head(){
            mouth = new Mouth();
        }
    }
    public class Mouth{
        .......
    }
head中直接创建了mouth对象,同生共死,拥有相同的生命周期

依赖关系(虚线箭头)

是一种使用关系,在需要表示一个事物使用另一种事物时使用依赖关系。依赖关系体现在某个类的方法使用另一个类的对象作为参数,又依赖的一方指向被依赖的一方。

    public class Driver{
        public void drive(Car car){
            car.move();
        }
    }
    public class Car{
        public void move(){
            ......
        }
    }

泛化关系(带空心三角的实线箭头)继承关系


实现关系(带空心三角的虚线箭头)实现接口

posted @ 2023-05-04 15:25  yuxin!!  阅读(46)  评论(0)    收藏  举报