Java实现适配器模式
2021/7/2 14:23:37
本文主要是介绍Java实现适配器模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
适配器模式(Adapter)
适配器模式涉及到3个角色:要被适配的接口,适配器,目标接口
适配器的工作就是将被适配的接口转换为目标接口
“鸭子类型”就是一个典型的适配器模式:如果它走起来像鸭子,叫起来像鸭子,那么它就是一只鸭子。
适配器模式示例:女儿国只有女人能加入,现在让唐僧加入女儿国
定义要被适配的接口与目标接口
目标接口:女人接口,女人只会唱歌
public interface Female { void sing(); }
要被适配的接口:男人接口,男人只会打架
public interface Male { void fight(); }
唐僧是一个男人,只会打架,不会唱歌
public class TangSeng implements Male { @Override public void fight() { System.out.println("阿弥陀佛"); } }
现在,女儿国中只有女人才能加入
public class FemaleCountry { private final Set<Female> females; public FemaleCountry() { this.females=new HashSet<>(); } // 只有女人可以加入 public void join(Female female) { females.add(female); } }
但是,唐僧一心要加入女儿国,他有什么办法呢?到了适配器出马的时候了
// 适配器实现目标接口 public class MaleAdapter implements Female { // 适配器内部包装了要被适配的对象 private Male male; public MaleAdapter(Male male) { this.male = male; } // 表面是在唱歌,实际上是在打架 @Override public void sing() { System.out.println("敢问圣僧,女儿美不美?"); male.fight(); } }
现在,男人已经可以适配女人接口了,让唐僧加入女儿国
public static void main(String[] args) { FemaleCountry country=new FemaleCountry(); // 用适配器包装 MaleAdapter tangseng=new MaleAdapter(new TangSeng()); // 唐僧也会唱歌 tangseng.sing(); // 唐僧也可以加入女儿国 country.join(tangseng); System.out.println(country); }
这篇关于Java实现适配器模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南