java设计模式适配器

适配者模式即是将一个接口转化为另一个接口

方式1:类适配器:继承真正的功能类,并实现对外开放的接口,在实现抽象方法时,直接调用父类的方法即可,即是super。function(), main方法使用时以规定接口的类型而实质创建该实现类对象调用方法时,实际上执行的是功能类的方法。(体现了多态调用)

方式2:对象适配器:仅仅实现对外开放的接口,将真正的功能类作为适配器类的成员变量,并必须设置有参的构造方法,对其成员进行初始实例化,实现该接口的抽象方法时,直接使用成员调用自己的方法即可。

方式3:某个接口中定义了大量的抽象方法。但是在特定的场合下,可能只需要用到其中的某些方法,如果直接实现接口, 就需要重写接口中所有的方法。定义一个抽象类,让抽象类实现该接口,将接口中的所有方法都空实现,然后继承该抽象类,重写需要实用的方法。

以USB接口和TypeC的关系对方式1,2进行验证:

代码如下:

class TypeC{
    public void function() {
        System.out.println("TypeC的功能");
    }
}
interface Usb{
    public abstract void function();
}
//类适配器
class Adapter extends TypeC implements Usb{

    @Override
    public void function() {
        super.function();
    }
    
}
//对象适配器
class Adapter1 implements Usb{
    private TypeC typec;
    public Adapter1(TypeC typeC) {
        this.typec = typeC;
    }
    @Override
    public void function() {
    typec.function();
        
    }
    
}
public class AdapterDemo {
    public static void main(String[] args) {
        Usb usb = new Adapter();
        usb.function();
        TypeC typeC = new TypeC();
        Usb usb2 = new Adapter1(typeC);
        usb2.function();
    }
}
 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值