01六种关系

  1. 依赖(Dependency)关系:一种使用关系,它是对象之间耦合度最弱的一种关联方式
package com.fish.relation.dependency;  
  
public class MobilePhone {  
    public void transfer(){  
  
    }  
}
package com.fish.relation.dependency;  
  
public class Person {  
    private String name;  
    
    public void call(MobilePhone mobilePhone) {  
        mobilePhone.transfer();  
    }  
}
  1. 关联(Association)关系:对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系
    • 关联关系分为一般关联关系、聚合关系和组合关系
    • 关联可以是双向的,也可以是单向的
package com.fish.relation.association;  
  
import java.util.List;  
  
public class Student {  
    private String name;  
    private List<Teacher> teachers;  
  
    public void study() {  
  
    }  
}
package com.fish.relation.association;  
  
import java.util.List;  
  
public class Teacher {  
    private String name;  
    private List<Student> students;  
  
    public void teaching() {  
    }  
}
  1. 聚合(Aggregation)关系:强关联关系,是整体和部分之间的关系,是has-a的关系
package com.fish.relation.aggregetion;  
  
public class Teacher {  
    private String name;  
  
    public void teaching() {  
    }  
}
package com.fish.relation.aggregetion;  
  
import java.util.List;  
  
public class University {  
    private List<Teacher> teachers;  
}
  1. 组合(Composition)关系:表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系,是contains-a关系
package com.fish.relation.composition;  
  
public class Head {  
    private Mouth mouth;  
}
package com.fish.relation.composition;  
  
public class Mouth {  
    public void eat() {  
    }  
  
}
  1. 泛化(Generalization)关系:对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系, 是is-a的关系
package com.fish.relation.generalization;  
  
public class Person {  
    private String name;  
    private int age;  
  
    public void speak() {  
    }  
}
package com.fish.relation.generalization;  
  
public class Student extends Person{  
    private long studentNo;  
  
    public void study() {  
    }  
}
package com.fish.relation.generalization;  
  
public class Teacher extends Person{  
    private long teacherNo;  
  
    public void teaching() {  
    }  
}
  1. 实现(Realization)关系:接口与实现类之间的关系
package com.fish.relation.realization;  
  
public interface Vehicle {  
    public void move();  
}
package com.fish.relation.realization;  
  
public class Ship implements Vehicle {  
    @Override  
    public void move() {  
  
    }  
}
package com.fish.relation.realization;  
  
public class Car implements Vehicle {  
    @Override  
    public void move() {  
  
    }  
}
posted @   vbig  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示
主题色彩