设计模式之适配器模式

来源:互联网 发布:部落冲突弹跳药水数据 编辑:程序博客网 时间:2024/06/05 10:30

什么是适配器模式

  在生活中我们经常会遇到接口不一致的场景,例如两个不同粗细的水管需要连接到一起,电器的工作电压和电线的电压不通.适配器模式将是一个类的接口转换成希望的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作.适配器分为两种:
  • 类适配器




  • 对象适配器:




适配器模式的特点


  1. 让功能得到更好的复用;
  2. 提高了扩展性.

如何使用适配器模式

类适配器

//已存在的但不符合我们要求的类public class OldAPI {public void Operation_1(){System.out.println("I am Operation_1");}}
//目标接口public interface TargetAPI {public void Operation_1();public void Operation_2();}
//适配器类,继承被适配的类同时实现目标功能接口public class Adapter extends OldAPI implements TargetAPI{@Overridepublic void Operation_2() {// TODO Auto-generated method stubSystem.out.println("I am Operation_2");}}
//测试类public class TestClassAdapter {public static void main(String[] args) {// TODO Auto-generated method stubTargetAPI api = new Adapter();api.Operation_1();api.Operation_2();}}

对象适配器

public class OldAPI {public void Operation_1(){System.out.println("I am Operation_1");}}
public interface Target {public void Operation_1();public void Operation_2();}
Adapter包装一个原类的实例
public class Adapter implements Target{public OldAPI old_api;public Adapter(OldAPI Old_API){this.old_api = Old_API;}@Overridepublic void Operation_1(){this.old_api.Operation_1();}@Overridepublic void Operation_2(){System.out.println("I am Operation_2");}}
public class testObjectAdapter {public static void main(String[] args) {// TODO Auto-generated method stubOldAPI oa = new OldAPI();Target adapter = new Adapter(oa);adapter.Operation_1();adapter.Operation_2();}}
1 0
原创粉丝点击