您的位置:首页 > 其它

适配器模式

2016-11-08 19:06 78 查看
 1.本程序主要介绍适配器模式

* 2.什么是适配器模式?

         * 答:我们去调用一个类A希望实现某个功能,但是类A却通过类B调用另外一个现有的类C来满足此功能。这里的类B即是适配器类,类C是
         * 适配者类。而调用类A的类则是Client类。

         *【将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)】

         *

* 3.具体实现

         * 答:我们以笔记本电源适配器为例来介绍这个适配器模式。

         * (1)在现实生活中,我们使用220V电压,但是电脑的使用电压是20V[假设]。这中间使用到适配器。即整体关系如下:

         * Adaptee、AdapteeTwo:代表的是220v电压。同适配者类
         * Computer:代表的是电脑。同Target类

         * Adapter 、AdapterTwo:代表的是适配器。即适配器类

         * Client:代表的客户类

         *

         * (2)这里的关系顺序如下:Client类想使用电脑,但是必须使用220V电压。但是电脑不能直接使用220V电压,

         * 就必须使用适配器对其进行电压的转换成20V电压。

         *

* 4.实现细节

package liu.shen.util;

/**
* Client类
* @author Object
*
*/
public class Client {
public static void main(String [] args){

Computer computer = new Adapter();
computer.opreation();

System.out.println("——————————————————————————");
computer = new AdapterTwo();
computer.opreation();

}
}

package liu.shen.util;

/**
* Adapter:适配器类,将220v转换成20v电压
* @author Object
*
*/

public class Adapter extends Computer{
public Adaptee ada = new Adaptee();//维持一个对象的引用

//构造方法
public Adapter(){

}

//继承自Computer类---->但是是否对其进行改写呢?
public void opreation(){
ada.transform();
System.out.println("通过Adapter类,220v电压转换成了22v电压!");
}

}

package liu.shen.util;

/**
* Adaptee:适配者类,即电脑的220V电压
* @author Object
*
*/

public class Adaptee {

//表示电压转换的方法
public void transform(){
System.out.println("我是220V电压!");
}
}

package liu.shen.util;

/**
* Computer:代表的是电脑类,即目标类
* @author Object
*
*/

public class Computer {

public Computer(){
System.out.println("我想玩电脑!");
}

public void opreation()//表示一个方法
{
}
}

package liu.shen.util;

/**
* AdapaterTwo:代表的是适配器2类,这一个类是将330v电压转换成33v电压
* @author Object
*
*/

public class AdapterTwo extends Computer{
public AdapterTwo(){
}
AdapteeTwo adat = new AdapteeTwo();

public void  opreation(){
adat.transform();
System.out.println("通过AdapteeTwo类,330v电压转换成了33v电压!");
}
}

package liu.shen.util;

/**
* AdapteeTwo:表示的是适配者2类,代表的是330v电压
* @author Object
*
*/

public class AdapteeTwo {
//表示转换的方法,将330v转换成33v
public void transform(){
System.out.println("我是330v电压!");
}
}


5.执行结果



6.总结

适配器模式是一个很简单的模式,在本模式中,我们需要注意的地方有:

(1):Target类是一个父类,可以是接口,抽象类,也可以是一个实体类。在本程序中就是一个实体类。Adapter类则继承Target类。

(2)在Adapter类中,通过调用Adaptee类中的方法来实现适配的目的。为了能够调用,Adapter中和Adaptee类则是关联关系。【将一个类的对象作为另一个类的成员变量】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: