设计模式之适配器模式

引入

        在我们实际的开发中,接口需要定义很多抽象方法。按照传统的来讲,即便某些子类不需要实现接口中的某些方法,那么也不得不进行方法的覆写(这是因为java语法的要求)。我们来看一下传统的方法

代码说明 

interface IBook {
    public void read();

    public void create();

    public void message();
}

class MathBook implements IBook {

    @Override
    public void read() {
        System.out.println("【MathBook子类】认真学习数学图书,巩固计算机的基础知识");
    }

    @Override
    public void create() {

    }

    @Override
    public void message() {

    }
}


class ProgramBook implements IBook {

    @Override
    public void read() {

    }

    @Override
    public void create() {
        System.out.println("【ProgramBook 子类】根据编程图书上给的知识,创建属于自己的未来网络");
    }

    @Override
    public void message() {

    }
}

适配器

        如果真的面对程序的编写,肯定希望直接命中主题,但是现在发现所有定义的子类不得不被需要无用的方法所拖累。即便不适用,也需要实现它,如果要是解决这个问题就需要找一个替代品,这个替代品负责实现接口中的所有方法,同时这替代品又不能够直接的使用,那么这种情况就是抽象类。

​​​​​​​

 

 代码说明:

interface IBook {
    public void read();

    public void create();

    public void message();
}

abstract class AbstractBookAdapter implements IBook {
    public void read() {

    }

    public void create() {

    }

    public void message() {

    }
}

class ProgramBookAbstract extends AbstractBookAdapter implements IBook {

    @Override
    public void create() {

        System.out.println("【ProgramBook 子类】根据编程图书上给的知识,创建属于自己的未来网络");

    }

}

        这样的接口中,我们可以拥有一个非常灵活的空间

        在以上程序中使用抽象类实现了程序的最终过度处理。这样就避免了子类要大面积覆写接口中抽象方法的尴尬局面。这样的设计在Java中属于适配器的设计模式。这种设计模式在整个类库中以及后续的学习中都是非常常见的功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

倪家李子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值