继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第18天+适配器模式

一起写代码2公众号
关注TA
已关注
手记 34
粉丝 1
获赞 5

课程名称:Java设计模式精讲 Debug方式+内存分析

课程章节:第12章 适配器模式讲解+Coding+源码解析

主讲老师:Geely

课程内容:

适配器模式

从实现形式上看,适配器模式就是,扩展了目标接口中的方法功能(功能是适配者实现的)

【为什么不直接调用对应的适配者接口方法呢?目的就是为了保证调用端的主逻辑不需要改动。如果适配者有改动,最多只需要改动适配器的内容实现,而不用改动调用主流程。而适配器本身,应该是简单的逻辑,不会存在业务逻辑,业务逻辑在适配者实现,所以改动点就在适配器上,适配器没有业务逻辑,所以必然是简单的代码】

问题1)定义?:没有关联的接口协同工作

将一个类的接口转换成客户希望的另一个接口。

让原来不兼容的两个接口协同工作

总的来说是实现方式就是,将target(期望)和 adeptee(已有资源)通过adapter组合起来。

问题2)分类?

分类: 类适配器、对象适配器、接口适配器

问题3)角色?(场景就是rpc调用)

目标接口**(客户端调用接口)**:Target,该角色把其他类转换为我们期望的接口(期望转换成的资源)

被适配者: Adaptee 原有的接口,也是希望被改变的接口(已有资源)

适配器: Adapter, 将被适配者和目标接口组合到一起的类(将已有和期望组合。)

适配器实现方式:适配器类实现目标接口,目标接口中的方法调用适配者类
图片描述

问题4)为什么要将,两个不兼容的接口,协同工作?

迪米特法则,不引用非关系类(出现在成员变量,方法的输入,输出参数中的类称为朋友类。),所以需要将两个非关系类,进行兼容,然后再调用。

图片描述

问题5)调用过程和实现方式

调用过程:客户端调用 适配器实现的 目标接口方法,目标方法内部调用适配者接口

适配器实现方式:适配器类实现目标接口,目标接口中的方法调用适配者类

问题6) 实例

客户端,调用目标接口drive方法,适配器实现目标接口drive方法和聚合适配者。drive方法调用适配者方法。这样客户端调用drive方法,调用的就是适配者的实现。(就是适配器,实现了目标接口和引用关联了适配者)

客户端,调用发动机,获取了电能或光能的,

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP