JAVA设计模式面试小考点之 适配器模式(实例讲解)

又到了小葵花妈妈课堂开课的时间啦。今儿让我们来学习一下是适配器模式。

 

定义

适配器模式,即定义一个包装类,用于包装不兼容接口的对象

其实不看定义,故名思意就知道适配器就是适配不同的接口之间的中间件。生活中的转接口,扩展坞等,其实都是适配器。

主要解决的就是两个原本接口不兼容的类,使之兼容可用。像生活中的数据线就是一个适配器,使充电器和手机兼容可用。

优缺点

优点 

  1. 复用且不修改类 : 不改变现有类的基础上 , 提高类的复用性 , 透明性 ; 让现有类与目标类接口匹配 ;
  2. 降低耦合 : 目标类 ( 用户调用的接口所在类 ) 和 现有类 ( 被适配者 ) 解除耦合 , 降低了系统的耦合性 , 易于扩展维护 ;
  3. 符合开闭原则 : 用户调用适配器接口 , 只与适配器类进行交互 , 如果需要修改扩展 , 只需要修改适配器类即可 , 目标类 和 现有类 各自都是相互独立的 , 互不影响 ;

缺点

  1. 增加复杂性 : 编写适配器类时 , 需要考虑全面 , 包括被适配者 和 目标类 , 系统复杂性会增加 ;
  2. 降低可读性 : 系统代码可读性降低 , 可维护性降低 ;

 

 

举个栗子

类适配器

public interface Target{
    public void request();
}
//适配者接口
public  class Adaptee{
    public void specificRequest()
    {       
        System.out.println("适配者中的业务代码被调用!");
    }
}
//类适配器类
public class ClassAdapter extends Adaptee implements Target{
    public void request()
    {
        specificRequest();
    }
}
//客户端代码

    public static void main(String[] args)
    {
        System.out.println("类适配器模式测试:");
        Target target = new ClassAdapter();
        target.request();
    }

 

 

对象适配器

class ObjectAdapter implements Target
{
    private Adaptee adaptee;
    public ObjectAdapter(Adaptee adaptee)
    {
        this.adaptee=adaptee;
    }
    public void request()
    {
        adaptee.specificRequest();
    }
}
//客户端代码

    public static void main(String[] args)
    {
        System.out.println("对象适配器模式测试:");
        Adaptee adaptee = new Adaptee();
        Target target = new ObjectAdapter(adaptee);
        target.request();
    }

 

总结

总而言之,言而总之,什么是适配器模式呢。就是提供一个类有效的去耦合两个无关类的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值