常见的6种类的关系

简介

  • 类的常见关系有六种,从弱到强为:依赖<关联<聚合<组合<泛化=实现。

依赖(Dependency)

  • 是一种使用的关系,即一个类需要另一个类的协助,尽量不双向依赖。
    180426.denpendency.png

表现

  • 局部变量。
public class Person {

    public void program() {
        Computer computer = new Computer();
    }
}
  • 方法的参数或返回值。
public class Person {

    public Computer program(Computer computer) {
        return computer;
    }
}
  • 静态方法的调用。
public class Computer {

    public static void program() {

    }
}
public class Person {

    public void program() {
        Computer.program();
    }
}

关联(Association)

  • 是一种拥有的关系,一个类知道另一个类的属性和方法。
    180426.assosiate.png

表现

  • 成员变量。
public class Teacher {

    private Student student;
}

其他关联

  • 双向关联。
    180426.double.png
  • 自关联。
    180426.self.png

聚合(Aggregation)和组合(Composition)

  • 聚合:整体和部分的关系,整体与部分可以分开
  • 组合:整体与部分的关系,但是整体与部分不可以分开
    180426.associate.png

表现

  • 成员变量。
public class People {

    private List<Person> personList;

    public void setPersonList(List<Person> personList) {
        this.personList = personList;
    }
}
public class Person {

    private Hand hand = new Hand();
}

泛化(Generalization)

  • 是一种继承关系,用于描述父类与子类之间的关系。
    180426.generation.png

表现

  • 继承父类。
public class Man extends Person {

}

实现(Realization)

  • 是一种实现接口关系,类是接口所有行为的实现。
    180426.realize.png

表现

  • 实现接口。
public interface Eat {

    void eat();
}
public class Person implements Eat {

    @Override
    public void eat() {

    }
}

参考

猜你喜欢

转载自blog.csdn.net/qq_40369829/article/details/80093572