适配器模式

 

在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。

  有两类适配器模式:   
·对象适配器模式 - 在这种适配器模式中,适配器容纳一个它我包裹的类的实例。在这种情况下,适配器调用被包裹对 象的物理实体。   
·类适配器模式 - 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。   
关于JAVA适配器的解释   
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 ——Gang of Four

以电脑和鼠标为例。假如有一台笔记本,只有USB鼠标接口,那么代码如下:

UsbMouse.java

Java代码
  1. package Adapter;
  2. public class UsbMouse {
  3. public String getUsbMouse(){
  4. return "USB鼠标";
  5. }
  6. }
package Adapter;

public  class UsbMouse {
	
	public String getUsbMouse(){
		return "USB鼠标";
	} 
	
}

Computer.java

Java代码
  1. package Adapter;
  2. public class Computer{
  3. UsbMouse mouse = new UsbMouse();
  4. public void StartUp(){
  5. String a = mouse.getUsbMouse();
  6. System.out.println("获得"+a+"成功!");
  7. }
  8. }
package Adapter;

public class Computer{   
     UsbMouse mouse = new UsbMouse();  
    public void StartUp(){   
        String a = mouse.getUsbMouse();  
        System.out.println("获得"+a+"成功!"); 
    }   
}   

 

测试代码,客户端Client.java

Java代码
  1. package Adapter;
  2. public class Client {
  3. public static void main(String[] args) {
  4. Computer computer = new Computer();
  5. computer.StartUp();
  6. }
  7. }
package Adapter;

public class Client {
	 public static void main(String[] args) {    
		 Computer computer = new Computer();     
		 computer.StartUp(); 
	    }   
}

 

要是现在没有USB鼠标,只有PS2鼠标,那么怎么办呢?
代码如下:
新增一个PS2鼠标接口:MouseInterface .java
Java代码
  1. package Adapter;
  2. //ps2鼠标接口
  3. public interface MouseInterface {
  4. public String getPS2Mouse();
  5. }
package Adapter;

//ps2鼠标接口
public interface  MouseInterface { 
	 public String getPS2Mouse();   
}
PS2鼠标PS2Mouse .java
Java代码
  1. package Adapter;
  2. public class PS2Mouse extends UsbMouse implements MouseInterface {
  3. public String getPS2Mouse(){
  4. return "PS2鼠标";
  5. }
  6. }
package Adapter;

public class PS2Mouse extends UsbMouse implements MouseInterface {   
    public String getPS2Mouse(){   
        return "PS2鼠标";   
    }      
}   

将之前的Computer.java改成如下代码:
Java代码 复制代码 收藏代码
  1. package Adapter;
  2. public class Computer{
  3. //UsbMouse mouse = new UsbMouse();
  4. PS2Mouse mouse = new PS2Mouse();
  5. public void StartUp(){
  6. String a = mouse.getUsbMouse();
  7. String b = mouse.getPS2Mouse();
  8. System.out.println("获得"+a+"成功!");
  9. System.out.println("获得"+b+"成功!");
  10. }
  11. }
package Adapter;

public class Computer{   
	//UsbMouse mouse = new UsbMouse();  
	PS2Mouse mouse = new PS2Mouse(); 
    public void StartUp(){   
        String a = mouse.getUsbMouse();  
        String b = mouse.getPS2Mouse(); 
        System.out.println("获得"+a+"成功!"); 
        System.out.println("获得"+b+"成功!");
    }   
}   
如上代码所示,增加了一个接口,和一个适配器(PS2鼠标)。电脑就可以获得PS2和USB的鼠标了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值