博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式——适配器模式(adpter模式)
阅读量:6160 次
发布时间:2019-06-21

本文共 1389 字,大约阅读时间需要 4 分钟。

  hot3.png

适配器模式:按照字面理解可以理解为要适应要配合才能一起很好的工作。

专业定义:把一个类的API转换成用户期望的另一种API,让原本不能在一起工作的类能够在一起工作。如果理解起来不是很明了,我们举个简单的例子,如下:电脑是一个类,电源插座是一个类,有时候电脑的电源插头是3孔的,而恰好现在我们可用的电源插座是两孔的,现在插不进去,无法正常使用电脑,该怎么办?那么此时,我们就想到了本节所提到的适配器模式。如果我们有一个电源适配器,其作用就是将电脑的3孔电源转换成2孔的电源,那么电脑不就可以正常的工作了吗?

适配器模式有类适配器模式和对象适配器模式

一 类适配器模式代码示例(核心思想:通过继承被适配者来建立适配器)

//用户期望能够使电脑插2孔的方法,我们用一个接口来定义

public interface Mhope

{

public void method2(){};

}

//电脑类

public  class   Computer

{

//插3孔电源的方法

public void  method3(){};

}

//适配器,通过继承来建立适配器这样就保留了电脑插3孔电源的方法,通过实现接口来满足用户期望的方法

public class Adapter extends Computer implements Mhope

{

//public void  method3(){}; 原来有的插3孔的方法

public void method2(){}; //实现了用户期望的插2孔的方法

}

有了适配器以后,那你想想看,我们把电脑插在适配器上,再将适配器插在我们的两孔电源插座上,这样就将电脑的插3孔电源的方法转换用户期望的插2孔电源的方法,这就是适配器的类适配器模式,既然是通过继承构建适配器的,那么优点就是可以在适配器中对父类插3孔的方法进行修改;

二对象适配器模式代码示例(核心思想:通过构建被适配者的对象来使用被适配者的方法,在适配器中定义用户期望的方法)

//电脑类

public  class   Computer

{

//插3孔电源的方法

public void  method3(){};

}

//适配器,

public class Adapter

{

private  Computer computer;

//通过构造方法,可以使用插3孔的方法

public Adapter(Computer computer)

{

this.computer=computer;

}

//使用插3孔的方法

public  void  usemethod3()

{

computer.method3();

}

//用户期望用到的插2孔的方法

public void hopemethod2(){

//详细代码

......................

}; }

}

不同于类的适配器模式,对象适配器模式是通过构建被适配者的对象来实现适应工作的,那么它的优点就可以是将不同的被适配者适配到同一个目标上。3,4,5,6孔的电器插头插到我们的具有3,4,5,6孔的电源适配器上,然后将适配器插到2孔电源上,不就都可以正常工作了吗????  (此处举例,话说有4,5,6孔的插座吗?O(∩_∩)O哈哈~)

转载于:https://my.oschina.net/jixin/blog/415597

你可能感兴趣的文章
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>
深入python的set和dict
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
centos 下安装g++
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
jquery用法大全
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>