找回密码
 立即注册
首页 业界区 业界 设计模式之适配器模式--新能源的发展

设计模式之适配器模式--新能源的发展

溥价 2025-6-6 20:21:34
前言

本文主要讲述适配器模式,文中使用通俗易懂的案例,使你更好的学习本章知识点并理解原理,做到有道无术。
一.什么是适配器模式

适配器模式是23种设计模式中结构型模式的一种,将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。
二.生活中的适配器模式

1.太阳能

太阳能、风能、水能这类自然能是大自然赐予我们的礼物。比如说太阳能板就能够把太阳能转换成咱们的电能,然后给家里的电器使用,如果是没有太阳能板,我们是无法直接把太阳能供给电器使用的,这个太阳能板就像设计模式中的适配器模式一样。
1.png

2.见手青

云南人民很喜欢喜食菌类,但是不是每种菌类都可以吃,或者是有些菌类在没完全煮熟的时候是有毒的,比如见手青。生的见手青是会让人中毒的,而一些见手青通过烹饪完全熟透后是可以食用并且还是一道美味,不过得注意不是所有见手青的品种都可以煮熟食用。让有毒不可食用的见手青转换成熟透可食用无毒的见手青的这个工具就像设计模式中的适配器模式一样。
2.png

3.充电器

中国家庭所用的交流电标准电压为220V,如果用直接把插座里的电通往手机的话,可能会发生爆炸。这个时候我们就需要用到手机专用的充电器了,通过充电器,我们把220V的电流转换成手机适配的电流,电脑的充电器也是同样的原理。这个充电器就像是设计模式中的适配器模式一样。
3.png

三.适配器模式的实现

接下来以太阳能汽车举例,通过适配器模式来实现。先创建一个适配者类太阳类和目标抽象类客户需要的接口
  1. package com.qianfeng.ran;
  2. /*
  3. * @author:江帅
  4. *      适配者类:Adaptee
  5. *          太阳类
  6. */
  7. public class Sun {
  8.     //发散太阳能的行为
  9.     public void behavior(){
  10.         System.out.print("太阳能");
  11.     }
  12. }
  13. /*
  14. * @author:江帅
  15. *      目标抽象类:Target
  16. *         客户需要的接口
  17. */
  18. interface SolarToElectric {
  19.     //把太阳能转换成电能
  20.     void transition();
  21. }
复制代码
再创建一个适配器类太阳能板和客户类太阳能汽车
  1. package com.qianfeng.ran;
  2. /*
  3. * @author:江帅
  4. *      适配器类:Adapter
  5. *          太阳能板
  6. */
  7. public class SolarPanel implements SolarToElectric {
  8.     //太阳能类
  9.     public Sun sun;
  10.     public SolarPanel(Sun sun){
  11.         this.sun = sun;
  12.     }
  13.     //太阳能转换成电能
  14.     @Override
  15.     public void transition() {
  16.         //获取太阳能
  17.         sun.behavior();
  18.         System.out.print("转换成电能");
  19.     }
  20. }
  21. /*
  22. * @author:江帅
  23. *      客户类:Client
  24. *          太阳能汽车
  25. */
  26. class SolarCar {
  27.     //发动机
  28.     public void engine(SolarToElectric solarToElectric){
  29.         //通过太阳能板获取能量
  30.         solarToElectric.transition();
  31.         System.out.print("发动汽车");
  32.     }
  33. }
复制代码
最后我们通过适配器模式实现把太阳能转换成电能的过程
  1. package com.qianfeng.ran;
  2. /*
  3. * @author:江帅
  4. *          客户端
  5. */
  6. public class Demo {
  7.     public static void main(String[] args) {
  8.         //创建一个太阳能板类,需要传递发散太阳能的太阳类
  9.         SolarToElectric solarPanel = new SolarPanel(new Sun());
  10.         //创建一个太阳能汽车
  11.         SolarCar car = new SolarCar();
  12.         //执行结果:
  13.         //太阳能转换成电能发动汽车
  14.         car.engine(solarPanel);
  15.     }
  16. }
复制代码
四.配套视频

如果你不习惯阅读技术文章,或是对文中的技术概念不能很好地理解,可以来看看我们帮你筛选出的视频教程。戳这里
以上就是本文的全部内容啦,更多精彩可以关注小千,get技术知识点

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册