设计模式之适配器模式

适配器模式 adapter pattern

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

比如:在JAVA编程过程中,我们可能遇到一种情况,我们需要类A实现接口B,但是类A并没有接口B中的所有方法,而类A也不允许改变。这时我们需要创建一个类C,他继承A并实现接口B,这个类C就是适配器。适配器中的代码,将接收你拥有的接口,并产生你需要的接口。适配模式有两种:类适配器模式和对象适配器模式。

类适配器模式

 适配器和被适配的类是继承关系,即为类适配器模式。

      

//目标接口
public interface TargetInterface{
  void method1();
  void method2();
}
//不变类,被适配的类
 class NoChangeClass{
  public void method1(){
      System.out.println("i am method1 from NoChangeClass");
     }
}
//适配器
class Adapter extends NoChangeClass implements TargetInterface{
  public void method2(){
    System.out.println("i am method2 from adapter");
  }
}
//测试
public class TestClass{
  public static void main(String []args){
  Adapter adapt=new Adapter();
  adapt.method1();
       adapt.method2(); 
   }
}

对象适配器模式

适配器和被适配的类是委托关系 ,即适配器持有被适配的引用。

 
public interface TargetInterface{
  void method1();
  void method2();
}
class NoChangeClass{
  public void method1(){
   Sysotem.out.println("I am method1 from NoChangeClass");
  }
}
class Adapter implements TargetInterface{
  public static NoChangeClass noChangeClass;
  public Adapter(NoChangeClass noChangeClass){
   this.noChangeClass=noChangeClass;
 }
 public void method1(){
   this.noChangeClass.method1();
  }
 public void method2(){
   System.out.println("I am method2 from Adapter");
  }
}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值