类之间的关系

类是面向对象中的重要概念,理解类的各种关系之前我们首先要理解什么是类

一,类的含义

类是面向对象的重要组成部分,每一个类都有自己的职责,去实现某些功能。设计的比较好的类,符合设计模式的开闭原则,一个类最好是只有一个单一职责。

类的职责主要分为属性和方法两大类。属性即类的数据职责,用于存储该类涉及的相关信息。方法即类的行为职责,用于实现某些功能。

 

二,类之间的关系

类之间的关系主要分为以下几种:

一,泛化关系(Generalization):表示类与类之间的继承关系、接口与接口之间的继承关系; 在UML图中用空心箭头加实线组成,如图所示表示动物类与狗类的泛化关系:


二,实现关系(Implementation):表示类对接口的实现,
实现关系也是依赖关系的特例,是接口和实现接口的类之间的一种关系。B 类实现了 A 类(接口),说明 B 实现了 A.

 


三:依赖关系(Dependence):当类与类之间有使用关系时就属于依赖关系,如果某一个类需要实现某一个方法,但是自己没办法实现,需要依赖于其他类中的方法或数据,那么这两个类就形成了依赖关系。在使用依赖关系时需注意“高聚合,低耦合”原则,就是说如果我的类A的实现需要依赖于B,如果B的实现依赖于C,那么如果我哪天修改了C,那么A和B这两个类的功能就可能发生变化,因此要多避免此种嵌套的依赖关系。

 


四,关联关系(Association):表示类与类或类与接口之间的依赖关系,表现为“拥有关系”;具体到代码可以用实例变量来表示;

关联关系有单向的一对一,如学生和校园卡关系。多对多,如仓库和商品关系,一对多,如老师对学生关系,如下为单向一对一关系:

 

public class Student {
    private StudentIDCard card;        // 指向StudentIDCard 
}

public class StudentIDCard {
// 注意:单向关系-这里并没有指向学生的引用
}

 

五,聚合关系(Aggregation):聚合关系表示的是整体和部分的关系,整体和部分可以分开;A 类中使用了 B、C,且 B、C 可以从 A 类中分离出来,这种关系就是聚合关系;


六,组合关系(Composition):属于是关联的特殊情况,也体现了体现部分-整体关系,是一种强“拥有关系”;整体与部分有相同的生命周期,是一种强关联;

 

参考一:https://blog.csdn.net/qingfoo/article/details/26557757

参考二:https://blog.csdn.net/qq_35493623/article/details/101624185?utm_source=app

posted @ 2020-03-17 22:50  HelloMrDeng  阅读(1212)  评论(0编辑  收藏  举报