Jun 9

适配器(Adapter)模式(包装模式) 不指定

chirs , 15:42 , 瓜哇天地 » 设计模式 , 评论(0) , 引用(0) , 阅读(4611) , Via 本站原创 | |
适配器(Adapter)模式也叫包装模式,主要有两种实现形式:
A:类适配器模式
B:对象适配器模式

都有三种角色
1:Target:供客户端调用
2:Adaptee:具体调用角色
3:Adapter:包装角色

A:类适配器模式

package com.pattern.adapter.classadapter;  
/**  
* 客户端要使用的目标类  
*  
*/  
public interface Target {  
      
    public void method1();  
  
}  

package com.pattern.adapter.classadapter;
/**
* 客户端要使用的目标类
*
*/
public interface Target {
  
  public void method1();

}

package com.pattern.adapter.classadapter;  
  
public class Adaptee {  
      
    public void method2(){  
        System.out.println("执行...");  
    }  
  
}  

package com.pattern.adapter.classadapter;
public class Adaptee {
  
  public void method2(){
    System.out.println("执行...");
  }

}

package com.pattern.adapter.classadapter;  
//继承Adaptee类  
public class Adapter extends Adaptee implements Target {  
  
    //包装类  
    public void method1() {  
        this.method2();  
    }  
  
}  

package com.pattern.adapter.classadapter;
//继承Adaptee类
public class Adapter extends Adaptee implements Target {

  //包装类
  public void method1() {
    this.method2();
  }

}
package com.pattern.adapter.classadapter;  
//适配器模式也叫包装模式  
public class Client {  
    //类适配器模式  
    public static void main(String[] args){  
        Target target = new Adapter();  
        target.method1();  
    }  
  
}  

package com.pattern.adapter.classadapter;
//适配器模式也叫包装模式
public class Client {
  //类适配器模式
  public static void main(String[] args){
    Target target = new Adapter();
    target.method1();
  }

}


B:对象适配器模式

package com.pattern.adapter.objectadapter;  
/**  
* 客户端要使用的目标类  
*  
*/  
public interface Target {  
    public void method1();  
}  

package com.pattern.adapter.objectadapter;
/**
* 客户端要使用的目标类
*
*/
public interface Target {
  public void method1();
}

package com.pattern.adapter.objectadapter;  
  
public class Adaptee {  
      
    public void method2(){  
        System.out.println("执行...");  
    }  
  
}  

package com.pattern.adapter.objectadapter;

public class Adaptee {
  
  public void method2(){
    System.out.println("执行...");
  }

}

package com.pattern.adapter.objectadapter;  
  
//不继承Adaptee类  
public class Adapter implements Target {  
  
    private Adaptee adaptee ;  
    public Adapter(Adaptee adaptee){  
        this.adaptee = adaptee;  
    }  
      
    public void method1() {  
        adaptee.method2();  
    }  
  
}  

package com.pattern.adapter.objectadapter;

//不继承Adaptee类
public class Adapter implements Target {

  private Adaptee adaptee ;
  public Adapter(Adaptee adaptee){
    this.adaptee = adaptee;
  }
  
  public void method1() {
    adaptee.method2();
  }

}
package com.pattern.adapter.objectadapter;  
//适配器模式也叫包装模式  
public class Client {  
    //对象适配器模式  
    public static void main(String[] args){  
        Target target = new Adapter(new Adaptee());  
        target.method1();  
    }  
  
}  
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]