设计模式之适配器模式

适配器模式是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。主要分为类的适配器,对象的适配器,接口的适配器

1.类的适配器

public class Source {
    public void show1(){
        System.out.println("方法一");
    }
}
public interface SourceInter {
    public void show1();

    public void show2();
}
public class SourceImpl extends Source implements SourceInter {

    @Override
    public void show2() {
        System.out.println("方法二");
    }
}
主函数测试

public class Main {
    public static void main(String[] args) {
        SourceImpl impl = new SourceImpl();
        impl.show1();
        impl.show2();
    }
}

2.对象的适配器,绑定相应的对象,不再是对应着类

public class SourceImpl2 implements SourceInter {
    private Source source;

    public SourceImpl2 (Source source){
        super();
        this.source = source;
    }
    @Override
    public void show1() {
        source.show1();
    }

    @Override
    public void show2() {
        System.out.println("这是方法二");
    }
}
实现接口,私有化变量source
主函数测试:

public class Main {
    public static void main(String[] args) {
        Source source = new Source();
        SourceImpl2 sourceImpl2 = new SourceImpl2(source);
        sourceImpl2.show1();
        sourceImpl2.show2();
    }
}

3. 接口适配器

先定义接口,用抽象类实现,子类具体实现并继承抽象类

public abstract class SourceInterAbstract implements SourceInter{
    @Override
    public void show1() {}

    @Override
    public void show2() {}
}
public class AbstractTest1 extends SourceInterAbstract {

    @Override
    public void show1() {
        System.out.println("这是接口方法一");
    }
}
public class AbstractTest2 extends SourceInterAbstract {
    @Override
    public void show2() {
        System.out.println("这是接口方法二");
    }
}<span style="display: none; width: 0px; height: 0px;" id="transmark"></span>
主函数测试:

public class Main {
    public static void main(String[] args) {
        AbstractTest1 abstractTest1 =new AbstractTest1();
        AbstractTest2 abstractTest2 = new AbstractTest2();
        abstractTest1.show1();
        abstractTest1.show2();

        abstractTest2.show1();
        abstractTest2.show2();
    }
}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值