1.为什么要有适配器设计模式

解决接口与接口实现类之间的继承矛盾问题

eg:一个食谱上有非常多的菜,蒸羊羔、蒸熊掌、蒸鹿尾儿、烧花鸭、烧雏鸡、烧子鹅、卤猪、卤鸭、酱鸡......我现在想要吃蒸羊羔,对应到程序中,首先我将会写一个食谱的接口,每一道菜名都是一个方法,那么我想吃蒸羊羔我要实现这个接口,就会造成我要重写所有的方法,可我只是想吃蒸羊羔,没必要实现所有的方法,所以矛盾就来了。

那么适配器模式解决的就是这种问题

试想,我想吃蒸羊羔其实我只要选择一个商家就可以吃到了,商家去实现食谱接口即可,我只要继承它,实现蒸羊羔这个方法即可,所以商家其实是一个抽象类,它去实现食谱的接口即可;为什么要使用抽象类,因为必须要被继承,不能实例化对象,否则商家就自己玩了,赚不到钱了。

2.适配器设计模式特征

1)使用抽象类分离了接口与【接口实现】
2)抽象类分摊接口中需要常用的方法
3)使得【接口实现类】像逛超市一样,可以随意选择
      接口中的方法来实现

3.代码实现

食谱接口类:

public interface 食谱 {public void 蒸羊羔();public void 蒸熊掌();public void 蒸鹿尾儿();public void 烧花鸭();......
}

商家实现类:

public abstract class 商家 implements 食谱 {@Overridepublic void 蒸羊羔(){System.out.println("蒸羊羔");}@Overridepublic void 蒸熊掌(){System.out.println("蒸熊掌");}@Overridepublic void 蒸鹿尾儿(){System.out.println("蒸鹿尾儿");}@Overridepublic void 烧花鸭(){System.out.println("烧花鸭");}......
}

我的实现类

public class 我  extends 商家 {@Overridepublic void 蒸羊羔(){System.out.println("蒸羊羔");}}

测试类:

public class TestMain {public static void main(String[] args) {食谱  sp = new 我();sp.蒸羊羔();}}

4.参考Servlet规范中GenericServlet

servlet规范中GenericServlet是一个很好的适配器模式实现,可参考

JAVA适配器设计模式简单应用相关推荐

  1. java 适配器设计模式_学习、探究Java设计模式——适配器模式

    前言 在Android开发中,我们会经常遇到ListAdapter.RecyclerViewAdapter等带有Adapter字样的类,其实这里就用到了适配器模式,由于适配器模式的使用频率极高,因此这 ...

  2. Java工厂设计模式(简单计算器实现)

    总体的目录结构如下 1.基础工厂类 public interface BaseFactory {} 2.拓展工厂类 public class OperationFactoryimplements Ba ...

  3. 适配器设计模式,简单的Java代码模拟

    /**适配器设计模式* 问题:* 接口(方法比较多)--实现类(仅仅使用一个也得把其他方法给实现了,哪怕是空实现)* 结局方案:* 接口(方法比较多)--适配器类(实现接口,仅仅是空实现)--实现类( ...

  4. Java 基础学习之字符串的简单操作和适配器设计模式

    一 适配器设计模式 1.适配器是什么? 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作.其别名为包装器(Wrapper) ...

  5. java几种常用设计模式简单示例

    1.单例设计模式 所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生.具体实现步骤如下: (1) 将采用单例设计模式的类的构造方法私有 ...

  6. Java设计模式(七):适配器设计模式

    1. 应用场景 在软件开发中,也就是系统的数据和行为都正确,但接口不相符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配.适配器模式主要应用于希望复用一些现存的类,但是接口又 ...

  7. python 最简单的实现适配器设计模式

    适配器设计模式是懒得改动某些代码,或者某些接口不方便改动的时候,使用一个特定的封装,一些特定的编写办法,使不同的接口可以使用同种调用方式使用. 更简单的说话则是,例如几个不同的接口 aliyun.qi ...

  8. java设计模式适配器模式_Java中的适配器设计模式

    java设计模式适配器模式 适配器设计模式是一种结构设计模式 ,可以帮助我们连接到通过不同接口公开相似功能的旧版或第三方代码. 适配器的现实世界是我们用来将USB电缆连接到以太网端口的类比. 在设计一 ...

  9. Java中的适配器设计模式

    适配器设计模式是一种结构设计模式 ,可以帮助我们连接到通过不同接口公开相似功能的旧版或第三方代码. 适配器的现实世界是我们用来将USB电缆连接到以太网端口的类比. 在设计面向对象的应用程序时,当我们的 ...

最新文章

  1. 数据结构与算法之美-目录
  2. 【铜】第174-9篇 一对一视频录制(九)一对多学生端删除白板及nginx下配CI
  3. 设计模式学习笔记-状态模式
  4. javascript案例练习
  5. 心动警告!你有一份礼包待领取→
  6. 神策数据助力海尔落地 6 大智慧厨房在线场景
  7. 思科加强生成树性能的属性(Portfast /Uplinkfast/BackboneFast)与RSTP的关系
  8. SASS简介及使用方法
  9. web.config文件之自定义错误节
  10. ASP获取数据库表名,字段名以及对字段的一些操作
  11. ISIS 中 Level1-2路由器向本区域内Level-1邻居下发缺省路由
  12. numpy提供的快速的元素级数组函数
  13. 强化学习 RL - DQN - 智能体Agent
  14. JS易混淆的方法整理
  15. Max Script|控制器-位置约束_path
  16. RS232 RS485 串口 电平标准
  17. 读书笔记:自动控制原理
  18. 北方工业大学java_在北方工业大学就读是怎样的一种体验?
  19. 如何查看某台计算机的IP地址 物理地址,显示ip:如何查看电脑ip地址和物理地址(地址)? _ 惠州SEO...
  20. python神经网络编程 代码,python神经网络算法代码

热门文章

  1. 以动物命名的软件品牌盘点
  2. vue 项目中使用 jquery
  3. 室内温湿度人体最合适的范围
  4. conio.h -1
  5. 敏捷-细说产品路线图(转)
  6. java json to bson_JSON BSON 效率比较
  7. 怎么在网络上开期货账户?
  8. 主元分析(PCA)理论分析及应用
  9. 初学者  C语言如何通过函数求同心圆环面积
  10. C语言余数为0输出intact,C语言中的宏是怎么展开的?