码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式——适配器模式(adpter模式)

时间:2015-05-16 10:36:31      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

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

专业定义:把一个类的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哈哈~)

设计模式——适配器模式(adpter模式)

标签:

原文地址:http://my.oschina.net/jixin/blog/415597

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!