适配器模式
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.实现细节
5.执行结果
6.总结
适配器模式是一个很简单的模式,在本模式中,我们需要注意的地方有:
(1):Target类是一个父类,可以是接口,抽象类,也可以是一个实体类。在本程序中就是一个实体类。Adapter类则继承Target类。
(2)在Adapter类中,通过调用Adaptee类中的方法来实现适配的目的。为了能够调用,Adapter中和Adaptee类则是关联关系。【将一个类的对象作为另一个类的成员变量】
* 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类则是关联关系。【将一个类的对象作为另一个类的成员变量】