适配器模式(笔记)

定义:

适配器模式是将一个类的接口转化成客户希望的另外一个接口

使得原来不能兼容的类可以在一起工作

主要角色:

Target:客户端要求的目标接口

被适配角色:Adaptee 需要适配的一个现在正在使用的接口

适配器角色:Adapter 把被适配角色的接口转换成目标接口

UML效果图:

适配器模式分为类适配器模式和对象适配器模式,区别在于实现适配器模式的时候是使用继承方式还是组合方式


在这里使用对象适配器模式来实现一个简单的适配器模式


// 客户期望的目标接口
package com.pattern.adapter;
public Interface Target{
 public void run();//会跑
 public void fly();//会飞
}
// 被适配的类
package com.pattern.adapter;
public class Adaptee {
  public void run(){
    System.out.println("I can Run");
 }
}


// 适配器角色
package com.pattern.adapter;
public class Adapter implements Target{
 private Adaptee adaptee;
 public void setAdaptee(Adaptee adaptee){
 this.adaptee= adaptee;
}
public Adaptee getAdaptee(){
  return this.adaptee;
}
public void fly(){
 System.out.println("I can fly");
}
public void run(){
 adaptee.run();
}
}

// 测试类
package com.pattern.adapter;
public class Cilent{
 public static void main(String []args){
   Adaptee adaptee = new Adaptee();
   Adapter adapter =new Adapter();
   adapter.setAdaptee(adaptee);
   Target target = (Target)adapter;
   target.run();
   target.fly();
 }
}

结果:

I can run

I can fly

优点:

通过适配器,客户端可以调用同一接口,因而对客户端来说是透明的。这样做更简单、更直接、更紧凑,而无需修改原有代码

缺点:

对于对象适配器来说,更换适配器的实现过程比较复杂。







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值