美文网首页java
Java中的依赖,关联,聚合,组合,继承,实现。

Java中的依赖,关联,聚合,组合,继承,实现。

作者: taijielan | 来源:发表于2019-03-29 09:32 被阅读0次

Java中的各种对象之间的关系,主要包含有这几种关系依赖,关联,聚合,组合,继承(泛化),实现。耦合度一次递增,关于耦合度,制度的是,当一个类变化时,对另一个类的影响,如果耦合度越低,影响越小,耦合度越高,对有关系的另一个类的影响越大。

依赖(Dependence)------->

表示俩个独立的对象,其中一个对象的返回值,或者形参,局部变量,或者静态方法的调用中包含另一个对象。


image.png
public class Person {
    //Car作为形参传递进来
    public void running(Car book){
        ...
    }
}
关联(Association)

单向关联用实心箭头来表示,双向关联不用箭头,关联关系有单向关联,双向关联,多维关联,关联关系比依赖的耦合度强,人代步可以用车,但是也可以用其他工具,但是学生和老师,是一个老师一个学生。也可以是一个老师对应多个学生,也可以是一个学生对应一个老师,在俩个对象之间,如果一个对象中的成员变量是另一个对象这种是单向关联,如果另一个对象中的成员变量也包含对方,就是双向关联,如果一个对象中依赖多个其他对象就是多维关联。


image.png
public class Teacher {
    private Student student;
    private Student[] students;
    public void giveClass(){
        student.study();
    }
}
public class Student {
    private Teacher teacher;
    public void study(){
        teacher.giveClass();
    }
}
聚合(Aggregation)

聚合用空心棱形加上实心箭头表示,聚合关系是一种"整体-个体"之间的关系,一般在定义一个整体的内容后,在然后找在整体中分析出个体,相对于整体而言,这些个体是可以独立存在。就像学校有学生,也有老师,学校包含学生,老师,学生老师也可以脱离学校而存在。


image.png
public class School  {
    //聚合中成员函数一般用set方法设置。
    private Student student;
    private Teacher teacher;
    public void setStudent(Student student) {
        this.student = student;
    }

    public void setTeacher(Teacher teacher) {
        this.teacher = teacher;
    }
    public School (Student student,Teacher teacher){
        ...
    }
    public void train(){
        ...
    }
}

public class Teacher {
    private Student student;

    public void giveClass(){
        student.study();
    }
}

public class Student {
    private Teacher teacher;
    public void study(){
        teacher.giveClass();
    }
}
组合(Composition)

组合用实心棱形和实心箭头表示,组合是一种强的聚合关系,也是"整体-个体"的关系,只不过这种"整体-个体"之间的关系是,个体不能脱离整体而存在,整体销毁,个体也就销毁了,就像人和心脏,汽车和发动机的关系。


image.png
public class Car {
    //组合中成员变量 ,一般用构造函数。
    private Engine engine;
    public Car(Engine engine){
        ...
    }
}
public class Engine {
    ....
}
继承 (Extends)

表示类与类之间或者接口与接口之间的关系继承关系,子类可以继承父类公共的方法。


image.png
public abstract  class Animal {
     abstract  void eat();
}
public class Dog extends Animal {
    @Override
    void eat() {

    }
}
实现(Implements)

表示一个类实现一个或者多个接口


image.png
public interface Study {
    void study();
}
public class Computer implements Study  {
    @Override
    public void study() {

    }
}
public class Book implements Study {
    @Override
    public void study() {
        
    }
}

相关文章

  • UML图的基础

    一、 基础关系 依赖关系依赖关系 实现关系实现关系 继承关系继承关系 组合关系组合关系 聚合关系聚合关系 关联关系...

  • 类和类之间的关系之继承

    继承 实现 (A is-a B) 也叫作泛化 组合 聚合 关联 (A) 依赖 继承 子类 => 父类 ...

  • 01.UML类图

    强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 泛化(Generalization) 子类继承...

  • UML(unified modeling language)常用

    继承 实现 关联 依赖 组合 聚合 是醉常用的统一建模语言常用的类关系个人理解:聚合和组合属于关联的子类,聚合和组...

  • Java中的依赖,关联,聚合,组合,继承,实现。

    Java中的各种对象之间的关系,主要包含有这几种关系依赖,关联,聚合,组合,继承(泛化),实现。耦合度一次递增,关...

  • 类之间的关系

    类之间的关系: 依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。

  • 工具篇:初识UML

    六种常见的关系以及耦合强度:依赖 < 关联 < 聚合 < 组合 < 实现 <继承 1、依赖关系(Dependen...

  • UML

    关系有:关联、依赖、组合、聚合、实现、泛化强弱排序:组合>聚合>关联>依赖符号表示:关联:实体箭头依赖:虚体箭头组...

  • 《架构设计: 基础 UML 类图》

    类之间得关系 1、关联关系单向关联双向关联自关联 2、聚合关系 3、组合关系 4、继承关系 5、实现关系 6、依赖...

  • JAVA设计模式

    设计模式简介: 类与类直接主要有六种关系:依赖、关联、聚合、组合、继承、实现(耦合度按) 依赖关系: 关联关系: ...

网友评论

    本文标题:Java中的依赖,关联,聚合,组合,继承,实现。

    本文链接:https://www.haomeiwen.com/subject/joskbqtx.html