Java适配器模式(adapter)

简介: 文章目录 适配器模式 什么是适配器模式 模式中的角色 适配器的实现方式 1.类适配器方式 2.对象适配器方式 工作中的场景


文章目录

   适配器模式

       什么是适配器模式

       模式中的角色

       适配器的实现方式

           1.类适配器方式

           2.对象适配器方式

       工作中的场景

 本文介绍下java设计模式中的适配器模式

适配器模式

什么是适配器模式

 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。

模式中的角色

   目标接口(Target):客户所期待的接口。目标可以是具体的或抽象

   的类,也可以是接口。

   需要适配的类(Adaptee):需要适配的类或适配者类。

   适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成

   目标接口

适配器的实现方式

image.png

1.类适配器方式

被适配的类

/**
 * 被适配的类
 * (相当于例子中的,PS/2键盘)
 * @author Administrator
 *
 */
public class Adaptee {
  public void request(){
    System.out.println("可以完成客户请求的需要的功能....");
  }
}

目标类

/**
 * 定义适配器的功能  目标类
 * @author dengp
 *
 */
public interface Target {
  /**
   * 处理请求的方法
   */
  void handleReq();
}

适配器类

/**
 * 适配器 (类适配器方式)
 * (相当于usb和ps/2的转接器)
 * @author 波波烤鸭
 *
 */
public class Adapter extends Adaptee implements Target {
  @Override
  public void handleReq() {
    super.request();
  }
}

测试

public static void main(String[] args) {
  Client  c = new Client();
  Target t = new Adapter();
  t.handleReq();
}

2.对象适配器方式

适配器类

/**
 * 适配器 (对象适配器方式,使用了组合的方式跟被适配对象整合)
 * (相当于usb和ps/2的转接器)
 * @author 波波烤鸭
 *
 */
public class Adapter2  implements Target {
  private Adaptee adaptee;
  @Override
  public void handleReq() {
    adaptee.request();
  }
  public Adapter2(Adaptee adaptee) {
    super();
    this.adaptee = adaptee;
  }
}

测试

public static void main(String[] args) {
  Adaptee a = new Adaptee();
  Target t = new Adapter2(a);
  t.handleReq();
}

工作中的场景

   经常用来做旧系统改造和升级

   如果我们的系统开发之后再也不需要维护,那么很多模式都是没必要的,但是不幸的是,事实却是维护一个系统的代价往往是开发一个系统的数倍。

JavaSE中使用到适配器模式的场景

   java.io.InputStreamReader(InputStream)

   java.io.OutputStreamWriter(OutputStream)

~适配模式比较简单,就介绍到这儿了


相关文章
|
20天前
|
设计模式 Java 中间件
23种设计模式,适配器模式的概念优缺点以及JAVA代码举例
【4月更文挑战第6天】适配器模式(Adapter Pattern)是一种结构型设计模式,它的主要目标是让原本由于接口不匹配而不能一起工作的类可以一起工作。适配器模式主要有两种形式:类适配器和对象适配器。类适配器模式通过继承来实现适配,而对象适配器模式则通过组合来实现
30 4
|
1月前
Servlet使用适配器模式进行增删改查案例(IDeptService.java)
Servlet使用适配器模式进行增删改查案例(IDeptService.java)
14 0
|
1月前
Servlet使用适配器模式进行增删改查案例(EmpDaoImpl.java)
Servlet使用适配器模式进行增删改查案例(EmpDaoImpl.java)
13 0
|
1月前
Servlet使用适配器模式进行增删改查案例(DeptDaoImpl.java)
Servlet使用适配器模式进行增删改查案例(DeptDaoImpl.java)
12 0
|
1月前
Servlet使用适配器模式进行增删改查案例(IDeptDao.java和IEmpDao.java)
Servlet使用适配器模式进行增删改查案例(IDeptDao.java和IEmpDao.java)
14 0
|
1月前
Servlet使用适配器模式进行增删改查案例(IBaseDaoUtil.java)
Servlet使用适配器模式进行增删改查案例(IBaseDaoUtil.java)
19 0
|
1月前
Servlet使用适配器模式进行增删改查案例(BaseDao.java)
Servlet使用适配器模式进行增删改查案例(BaseDao.java)
15 0
|
1月前
Servlet使用适配器模式进行增删改查案例(Dept.java)
Servlet使用适配器模式进行增删改查案例(Dept.java)
19 0
|
1月前
Servlet使用适配器模式进行增删改查案例(Emp.java)
Servlet使用适配器模式进行增删改查案例(Emp.java)
11 0
|
4月前
|
设计模式 Java
Java设计模式【六】:适配器模式
Java设计模式【六】:适配器模式
15 0