前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java适配器模式(adapter)

Java适配器模式(adapter)

作者头像
用户4919348
发布2019-04-02 11:13:06
1K0
发布2019-04-02 11:13:06
举报
文章被收录于专栏:波波烤鸭波波烤鸭

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

适配器模式

什么是适配器模式

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

模式中的角色

  1. 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象 的类,也可以是接口。
  2. 需要适配的类(Adaptee):需要适配的类或适配者类。
  3. 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成 目标接口

适配器的实现方式

在这里插入图片描述
在这里插入图片描述

1.类适配器方式

被适配的类

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

目标类

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

适配器类

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

测试

代码语言:javascript
复制
public static void main(String[] args) {
	Client  c = new Client();
	Target t = new Adapter();
	t.handleReq();
}

2.对象适配器方式

适配器类

代码语言:javascript
复制
/**
 * 适配器 (对象适配器方式,使用了组合的方式跟被适配对象整合)
 * (相当于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;
	}
}

测试

代码语言:javascript
复制
public static void main(String[] args) {
	Adaptee a = new Adaptee();
	Target t = new Adapter2(a);
	t.handleReq();
}

工作中的场景

  1. 经常用来做旧系统改造和升级
  2. 如果我们的系统开发之后再也不需要维护,那么很多模式都是没必要的,但是不幸的是,事实却是维护一个系统的代价往往是开发一个系统的数倍。

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

  1. java.io.InputStreamReader(InputStream)
  2. java.io.OutputStreamWriter(OutputStream)

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年02月26日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 适配器模式
    • 什么是适配器模式
      • 模式中的角色
        • 适配器的实现方式
          • 1.类适配器方式
          • 2.对象适配器方式
        • 工作中的场景
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档