免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1231 | 回复: 0
打印 上一主题 下一主题

java与模式 关于Adapter适配器模式(一) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-15 20:38 |只看该作者 |倒序浏览
    适配器模式(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();
        
    }
}


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/66973/showart_1308283.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP