适配器模式使那些原本由于接口不兼容而不能一起工作的类可以一起工作。

这里我们举一个例子说明适配器设计模式。

上面的类图中,我定义了两个接口,一个BigPlants接口一个SmartPlants接口,他们都有一个浇水的方法(Watering())。编写Tree类并实现BigPlants接口,而在我们使用SmartPlants接口的时候我们不想单独实现浇水方法,我们想直接使用BigPlants接口实现类中的浇水方法。

但是有一个问题,我们并不想浇BigPlants这么多水,对于SmartPlants来说一点点水就足够了。

这时我们就需要构建一个SmartPlants接口的适配器类(WaterAdapter)来将BigPlants中实现的浇水方法变得适合SmartPlants去使用。

/*
* 定义BigPlants接口
* */
interface BigPlants{int moreWatering();
}/*
* 定义SmartPlants接口
* */
interface SmartPlants{int littleWatering();
}/*
* 定义Tree类实现BigPlants接口
* */
class Tree implements BigPlants{public int moreWatering(){return 1000;}
}/*
* 定义适配器类WaterAdapter实现SmartPlants接口
* */
class WaterAdapter implements SmartPlants{private BigPlants bigPlants;/** 传入BigPlants类型的对象* */public WaterAdapter(BigPlants bigPlants){this.bigPlants = bigPlants;}/** 适配BigPlants的moreWatering()方法* */public int littleWatering(){int water =  bigPlants.moreWatering()-800;return water;}
}public class AdapterTest {public static void main(String[] args) {SmartPlants flower = new WaterAdapter(new Tree());System.out.println(flower.littleWatering());}
}
/*
*output:
* 200
* */

转载于:https://www.cnblogs.com/old-driver-lgq/p/10806272.html

Java设计模式之适配器模式相关推荐

  1. Java设计模式之适配器模式(属于结构型模式)

    Java设计模式之适配器模式(结构型模式) 定义:将一个类的接口转换成客户希望的另外一个接口.Adaptor模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 模式中的角色: 目标接口(T ...

  2. Java 设计模式之适配器模式

    一.了解适配器模式 1.1 什么是适配器模式 适配器模式将一个类的接口,转换成客户期望的另一个接口.适配器让原来接口不兼容的类可以合作无间.适配器模式有两种:"对象"适配器和&qu ...

  3. ​JAVA设计模式(九)——适配器模式

    下图为所有设计模式,带标记为重点掌握以及工作中常用到的:   适配器模式属于结构型模式之一,顾名思义,肯定会存在一个适配器的类去进行适配.比如我们以前的笔记本电脑如果要读取我们手机的内存卡,直接读取是 ...

  4. java设计模式 之适配器模式

    <JAVA与模式>一书中开头是这样描述适配器(Adapter)模式的: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 ...

  5. java设计模式adapter,java设计模式-适配器模式(Adapter)

    定义 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极 ...

  6. 2020 java设计模式之适配器模式

    适配器模式: 1 初步认识 适配器模式的定义: 将一个类的接口转成客户期望的另外一个接口.适配器模式使得原本由于接口不匹配而不能一起工作的那些类可以一起工作. 通俗的讲法:用电器来打个比喻:有一个电器 ...

  7. (设计模式六)java设计模式之适配器模式

    适配器模式将一个类的接口适配成用户所期待的.一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中. 一.解决问题: 即Adapter模式使得原本由于 ...

  8. Java 设计模式(适配器模式与外观模式)

    适配器模式 包装某些对象,让它们的接口看起来不像自己而像是别的东西. 将一个类的接口转换成客户期望的另一个接口.适配器让原本接口不兼容的类可以合作无间. 比如现有一个软件系统,有一些接口,但是与所需的 ...

  9. Java设计模式之适配器模式在jdk中的应用

最新文章

  1. 如何养出一个三十几亿身家的儿子
  2. 年末回顾:2021年 AI 领域十大研究趋势及必读论文
  3. BurpSuite实例教程讲解
  4. 软件工程与UML案例解析
  5. JQuery 分割函数(split)的用法和定义
  6. eclipse出现updating error reports database一直运行解决方案
  7. jax-rs jax-ws_在JAX-RS中处理异步请求中的超时
  8. Activity的LaunchMode和taskAffinity
  9. laravel商品图片怎么展示_如何使用Laravel图片处理包intervention-image
  10. C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)
  11. 【Flink】HttpClient 报错 I/O SocketException caught when processing request to Connection Reset
  12. Spring-Cloud-Config消息总线和高可用
  13. python查看数据大小_python 监控文件大小
  14. 乐谱xml文件转为VOCALOID3的输入文件格式vsqx
  15. 如何引用维基百科Wikipedia
  16. 3GPP 资源 使用、查找 教程
  17. 空间轨迹分析与应用(前言)Computing with Spatial Trajectories
  18. HTML5的数据存储和数据处理的功能有,浅析 HTML5 数据存储的方法及应用
  19. 微信WeChatHelper3.1.0.72逆向-微信WeChatHelper3.1.0.72接口(WeChatHelper3.1.0.72.dll)-VC++调用实例方法(win32)
  20. mysql 系统错误 1058,mysql启动服务报1058错误的解决方法

热门文章

  1. 电脑常见故障处理_关于密封仪、密封试验仪器在使用上的常见故障及维护方面...
  2. 三星s轻奢android+p,三星Galaxy S轻奢版5月21日将至:骁龙660处理器+安卓8.0
  3. 的注册表怎么才能删干净_白蚁怎么才能消灭干净?
  4. java cxf 入口统一_分分钟带你玩转 Web Services【2】CXF
  5. 管理系统中计算机应用知识总结,自考《管理系统中计算机应用》章节知识点复习:管理信息...
  6. mysqlmediumtext,分享面经!
  7. 前方高能!金三银四Java高级工程师面试题整理
  8. python【力扣LeetCode算法题库】面试题62- 圆圈中最后剩下的数字(约瑟夫环)
  9. python【蓝桥杯vip练习题库】ADV-183分苹果(差分数组 离线区间)
  10. Tomcat的账号与密码