大淘客做网站,网络规划设计师与系统规划与管理师,新衡阳网站,网站怎么做等级保护写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用#xff0c;主要是下面的UML图可以起到大作用#xff0c;在你学习过一遍以后可能会遗忘#xff0c;忘记了不要紧#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。
适配器模式#xff08;Adapte…写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用主要是下面的UML图可以起到大作用在你学习过一遍以后可能会遗忘忘记了不要紧只要看一眼UML图就能想起来了。同时也请大家多多指教。
适配器模式Adapter
是一种行为型模式。
目录
一、概述
二、使用步骤
三、举例 一、概述 1、将一个类的接口转换成客户希望的另外一个接口 2、使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 3、适配器模式主要用于希望复用一些现存的类但是接口又与复用环境要求不一致的情况。 1.1、主要的角色分三种但从代码或技术实现的角度看为了充分使用面向对象语言的3大特性封装、继承、多态还另外需要抽象类或接口可能有4个 客户原本需要的类包括客户原本需要的类的抽象类或接口单个 客户原本需要的类的实现类多个需要适配的旧对象数量没有明确限定适配器数量没有明确限定 1.2、直观的理解上发起方使用需要适配的旧对象的流程如下 1.3、通过技术实现的角度看对象之间关系的UML图如下 二、使用步骤 先确定哪些对象不能被直接使用针对这些对象建立相应的适配器请求发起类直接在需要的时候直接调用适配器即可。 三、举例
简单举例假设主程序需要一个普通请求和一个特殊请求其中主程序没有办法直接调用特殊请求。 对于本例由于比较简单可以不需要对普通请求对象进行抽象我们在实践时也是一样如果问题本身不是太复杂也就不需要刻意花功夫去进行抽象在其他模式种也一样。所以我们只需要加一个适配器即可。 3.1、设计之后对象之间的关系用UML图表示如下 3.2、Java实现代码如下建议你在本地试一下加深印象
普通请求类
public class Target {public void request() {System.out.println(普通请求);}
}特殊请求被适配的对象
public class Adaptee {public void specificRequest(){System.out.println(特殊请求);}
}适配器
public class Adapter extends Target {private Adaptee adaptee new Adaptee();Overridepublic void request() {adaptee.specificRequest();}
} 主程序发起请求的类
public class Main {public static void main(String[] args) {//普通请求Target target1 new Target();target1.request();//适配后的请求Target target2 new Adapter();target2.request();}
}这里就不再举例了可以把上面的Java例子复制到你本地运行main函数试一下加深理解。这些代码都是我自己学习的时候根据一些教材手敲的不存在bug可以直接运行。
如果觉得本文还不错就请点个赞吧如果有建议也请评论指教和讨论