Chinaunix首页 | 论坛 | 博客
  • 博客访问: 64568
  • 博文数量: 34
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 360
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-20 10:39
文章分类
文章存档

2010年(3)

2009年(5)

2008年(26)

我的朋友
最近访客

分类: Java

2008-10-15 20:38:54

    适配器模式(adapter)把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配的而无法一起工作的两个类能够在一起工作。                            
                                                            ----------《java与模式》
 
   对于adapter有两种适配器。一种是类的适配模式,一种是对象的适配模式。其实没有很大的差异。
   类的适配模式:三个类,一个是Adaptee(这个是和我们需要的target不能符合的类),Adpater(这个就是适配器模式的核心类。将现存的Adaptee和target的差异抹平。),target(这个是我们需要的类,一般是接口形式).书里面将Adaptee比喻为 我们平时使用的220V电压,而我们的笔记本电脑只要12V的电压。
   

/**
 * 这就是220V电压。外界提供的电压。提供不同的方法。
 * @author Administrator
 *
 */

public class Adaptee{
   private String string;
   public Adaptee(String string){
     this.string=string;
   }
   public void showWithParen(){
     System.out.println("("+string+")");
   }
   
   public void showWithAster(){
     System.out.println("*"+string+"*");
   }
}

 

这里是我们需要的12V的接口。我们就等着Adapter把220V转变为12V

/**
 * 这就是我们要使用的target12V类。是提供给Main使用的接口。
 * @author Administrator
 *
 */

public interface target{
    public abstract void provideWeak();
    public abstract void provideStrong();
}

 

Adapter类是adpater模式的核心。

 

/**
 * 对于Adapter模式,最重要的就是这个类了。。
 * 其实对于Main(就是我们使用的类)来说就是Adapter来决定将Adaptee外界的电压和需求的电压target之间的
 * 差别磨合。
 * 比如如果要带“(”的,就是用adaptee的带"("的。要"*"的就是用target的带"*"的。
 * @author Administrator
 *
 */

public class adapter extends Adaptee implements target{

    public adapter(String string) {
        super(string);
        // TODO Auto-generated constructor stub

    }

    @Override
    public void provideStrong() {
     showWithParen();
    }

    @Override
    public void provideWeak() {
     showWithAster();
        
    }

}

阅读(675) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~