写在前面 博客是我平时做项目和学习的过程,很基础,但是每一篇我很认真在写,力求让读者,读的清楚,看的明白。 不是大佬,但努力成为,如果您也对Java、算法感兴趣,可以相互关注,一起成长,相信滴水穿石的力量 关系耦合度:继承(泛化)=实现>组合>聚合>关联>依赖 定义 对应java代码 UML图 People类想要完成eat方法,需要使用Food类,即需要Food类提供getName方法作为服务 定义 对应java代码 为什么依赖比关联的耦合度低? 依赖对应对象方法的局部变量,关联对应对象的成员变量。 聚合 组合 共同点 不同点:构造函数不同 子类继承父类的属性和方法,除私有成员和构造函数外 关于私有成员是否可以继承,java官方文档说是不可以 子类继承父类,父类泛化子类,继承对应java代码使用extends关键字 此原则本质便为:为什么少用继承关系多用组合(合成)聚合关系 1.子类继承父类公有和受保护的所有方法,即使父类方法是有害或者对子类无用 2. 耦合度高,父类变化也会引起子类变化,也可能造成类体系无限膨胀 3. 继承的子类,实际上需要编译期确定下来,这满足不了需要在运行内才能确定对象的情况。而组合却可以比继承灵活得多,可以在运行期才决定某个对象。 组合聚合关系是结构型设计模式的核心,典型的设计模式有代理模式,适配器模式,装饰模式等 关系描述及举例 对应代码 絮叨一句:过了一年又重学了一次UML,其实在软考的时候就想写了,只不过还不成体系,现在对面向对象的理解渐渐深入,这就是一个进步。
大家好,我是Think-Coder,比较通俗的昵称,寓意是做一个有思考的程序猿,现在的状态是边做项目边学习;文章目录
一、UML类图关系总览
文字解释下各个类及关系
类
含义及关系
Food类
食物类,People类依赖Food类
Adress类
地址类,People类关联Address类
PeopleGroup类
人群类,PeopleGroup类聚合People类
Heart类
心脏类,Hear类组合成People类
Animal类
动物类,People类继承Animal类
Eatting接口
People类实现此接口
下面依关系耦合度角度,从低向高依次介绍并给出对象的代码二、依赖关系
1.关系描述
2.举例
对应的代码Class People{ //Food类作为eat方法的参数 public void eat(Food food){ System.out.println("正在吃的食物是"+food.getName()) } }
三、关联关系
1.关系描述
2.举例
每一个People对象都有一个联系地址
对应代码Class People{ //Address类作为成员变量 private Address address; }
3.思考
成员变量和对象具有相同的生命周期,即类A一直和类B存在关联关系
局部变量只有在方法被调用时,类A才会和类B存在依赖关系
因此从关系存在的时间长短可以推断出依赖比关联耦合度低三、聚合、组合关系——关联关系的两种形式
1.关系描述
2.两者关系对比
3.关系比较
四、继承(泛化)关系
1.关系描述
关系描述为is a,比如人是一个动物
Private Members in a Superclass
A subclass does not inherit the private members of its parent class. However, if the superclass has public or protected methods for accessing its private fields, these can also be used by the subclass.2.举例
对应代码class People extends Animal{ }
3.思考:合成(聚合)复用原则由来
以下参考这篇大佬的博客
对这句话理解:子类要想实例化其父类必先实例化,因此要实例的对象在编译时已经确定,不能够动态生成指定对象五、实现关系
class People implements Eating(){ //重写的方法,接口的方法就不写了,哈哈 public void eat(Food food){ System.out.println("正在吃的食物是"+food.getName()) } }
六、最后总结
关系耦合度:继承(泛化)=实现>组合>聚合>关联>依赖
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算