读《设计模式:可复用面向对象软件的基础》-- 结构型模式之适配器模式(Adapter)

结构型模式

结构型模式主要涉及如何组合各种对象以便获得更好、更灵活的结构。虽然面向对象的继承机制提供了最基本的子类扩展父类的功能,但结构型模式不仅仅简单地使用继承,而更多地通过组合与运行期的动态组合来实现更灵活的功能。
包括的设计模式:适配器、桥接、组合、装饰器、外观、享元、代理

适配器模式(Adapter)

意图

将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

别名

包装器:Wrapper

动机

有时,为复用而设计的工具箱类不能够被复用的原因仅仅是因为它的接口与专业应用领域所需要的接口不匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的清苦那个生活中用到适配器的例子很多,比如电源适配器,翻译官。

结构

类适配器
类适配器模式
对象适配器(常用)
对象适配器模式

角色

Target
定义Client使用的与特定领域相关的接口(目标接口)。
Adaptee
定义了一个已经存在的接口,这个接口需要适配。
Adaptor
把Adaptee接口与目标接口进行适配。

效果

效果

实现

//目标接口
package com.wlj.adapter;
/**
 * @author wlj
 * @Classname Target
 * @Description 目标类
 * @Date 6/14/2022 11:24 AM
 */
public class Target {
	//客户需要调用的接口
    public void request(){
        System.out.println("普通请求");
    }
}
//现存的
package com.wlj.adapter;
/**
 * @author wlj
 * @Classname Adaptee
 * @Description 现存的类,需要适配
 * @Date 6/14/2022 11:25 AM
 */
public class Adaptee {
	//现有的特殊接口
    public void specialRequest(){
        System.out.println("特殊请求");
    }
}
//适配器
package com.wlj.adapter;
/**
 * @author wlj
 * @Classname Adapter
 * @Description 适配器
 * @Date 6/14/2022 11:26 AM
 */
public class Adapter extends Target {
    @Override
    public void request(){
    	//适配现有接口
        Adaptee adaptee = new Adaptee();
        adaptee.specialRequest();
    }
}
//测试
public class Client {
    public static void main(String[] args) {
        Target target = new Adapter();
        target.request();
    }
}
//结果
特殊接口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w͏l͏j͏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值