设计模式学习(结构型模式)—适配器模式(Adapter)

适配器模式(Adapter) 

在原类型不做任何改变的情况下,用一个适配器类把一个接口转成另一个接口,扩展了新的接口,灵活且多样的适配一切旧俗。这种打破旧框框,适配新格局的思想,是面向对象的精髓。

以继承方式实现的类的 Adapter模式和以聚合方式实现的对象的Adapter模式,各有千秋,各取所长。

使用情况:系统的数据和行为都正确,但是接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一下现存的类,但是接口又与复用环境要求不一致的情况。


[java]  view plain copy
  1. public class TestAdapter {  
  2.   
  3. public static void main(String[] args) {  
  4.   
  5. USB mouse=new Mouse();  
  6.   
  7. PC pc=new PC();  
  8.   
  9. PS2 adapter=new USB2PS2Adapter(mouse);  
  10.   
  11. pc.useMouse(adapter);  //通过pc来调用usb接口
  12.   
  13. }  
  14.   
  15. }  
  16.   
  17. interface PS2{  //转换接口
  18.   
  19. void usePs2();  
  20.   
  21. }  
  22.   
  23. interface USB{  //usb接口
  24.   
  25. void useUsb();  
  26.   
  27. }  
  28.   
  29. class Mouse implements USB{  //鼠标类,实现了usb接口
  30.   
  31. public void useUsb(){  
  32.   
  33. System.out.println("通过USB接口工作");  
  34.   
  35. }  
  36.   
  37. }  
  38.   
  39. class PC{  //pc类
  40.   
  41. public void useMouse(PS2 ps2Mouse){  //使用鼠标的方法中间传的转换接口的实现类
  42.   
  43. ps2Mouse.usePs2();  
  44.   
  45. }  
  46.   
  47. }  
  48.   
  49. class USB2PS2Adapter implements PS2{  //转换接口的实现类(把原接口的调用转换成对目标接口的调用
  50.   
  51. private USB usb;  
  52.   
  53. public USB2PS2Adapter(USB usb) {  //构造方法中usb接口传进来
  54.   
  55. this.usb = usb;  
  56.   
  57. }  
  58.   
  59. public void usePs2(){  //调用usb接口
  60.   
  61. System.out.println("把对usePS2的方法调用转换成对useUSB的方法调用");  
  62.   
  63. usb.useUsb();  
  64.   
  65. }  
  66.   
  67. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值