7、适配器模式

适配器模式就是让两个原来不兼容的接口兼容,它由以下三部分组成:

  • 目标接口:需要适配的接口
  • 适配者:被适配的类
  • 适配器:通过继承或引用适配者属性的方式创建的新类

继承实现方式具体代码:

public class ClassAdapter {

    interface Target {
        void request();
    }
    
    class Adaptee {
        public void specificRequest() {
            System.out.println("适配着业务方法被调用");
        }
    }

    class Adapter extends Adaptee implements Target {
        @Override
        public void request() {
            specificRequest();
        }
    }

}

如上代码所示,Target 目标接口 request() 方法想调用 Adaptee 类中的 specificRequest() 方法,但两个方法没有任何关系,也就是不适配,此时就可以创建适配器,把两者结合一起工作。

除了继承,还可以通过属性直接调用:

public class ObjectAdapter {

    interface Target {
        void request();
    }

    /**
     * 被适配类
     */
    class Adaptee {
        public void specificRequest() {
            System.out.println("适配着业务方法被调用");
        }
    }

    class Adapter implements Target {
        private Adaptee adaptee;

        public Adapter(Adaptee adaptee) {
            this.adaptee = adaptee;
        }

        @Override
        public void request() {
            adaptee.specificRequest();
        }
    }

}

这里我更倾向使用继承,因为继承可以通过权限修饰符隐藏部分不想暴露的方法或属性,直接使用属性相对耦合更高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值