6.适配器设计模式
Posted 疯狂的肉包
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6.适配器设计模式相关的知识,希望对你有一定的参考价值。
public interface PinPlug{ void charge(); }
1.概述
适配器设计模式针对如下情况:-----客户需要用某个接口,但是能提供服务的接口没有实现那个接口。
- 客户端只能使用某种接口---客户端是台灯,接口是双孔插座
- 服务端----服务类是三孔插座
- 适配器类是服务类和客户端中间的一个桥接类---插线板
2.代码
适配器模式的分类:
- 类适配器----通过继承实现
- 对象适配器--通过组合实现
2.1类适配器
- 功能描述:为台灯充上电照明(台灯只能使用双孔插座)
-
public interface PinPlug{ void charge(); }
-
1.描述:与台灯配套的插座接口
-
public class ThreePinPlug{ public void specialcharge(){ System.out.println("三孔插座充电"); } }
- 2.描述:不能直接使用的三孔插座
-
public class PinPluginAdapter extends ThreePinPlug implements PinPlug{ public void charge(){ System.out.println("两孔桥接"); super.specialcharge(); } }
- 3.通过继承的方式创建一个把三孔转换为两空的类
-
public class Lamp { private PinPlug pinPlug; public Lamp(){ this.pinPlug=new PinPluginAdapter(); } public void Lignting() { if (pinPlug!=null) { pinPlug.charge(); System.out.println("照明"); }else{ System.out.println("没电"); } } public static void main(String[] args){ Lamp lamp=new Lamp(); lamp.Lignting(); } }
- 4.客户端:台灯
2.2对象适配器---组合的方式
-
public class PinPluginAdapter implements PinPlug{ ThreePinPlug threePinPlug=new ThreePinPlug(); public void charge(){ System.out.println("两孔桥接"); threePinPlug.specialcharge(); } }
3.分析
配器模式不适合在详细设计阶段使用它,它是一种补偿模式,专用来在系统后期扩展、修改时所用。
以上是关于6.适配器设计模式的主要内容,如果未能解决你的问题,请参考以下文章