随笔 - 37  文章 - 29  trackbacks - 0


常用链接

留言簿(3)

随笔分类

随笔档案

最新评论

阅读排行榜

评论排行榜

ADAPTER —在朋友聚会上碰到了一个美女Sarah,从香港来的,可我不会说粤语,她不会说普通话,只好求助于我的朋友kent了,他作为我和Sarah之间的Adapter,让我和Sarah可以相互交谈了(也不知道他会不会耍我)

个人理解,适配器模式,就是两个水管A(Target)和C(Adaptee)接口不匹配不兼容,就拿另外一截管子B(Adapter),一头接上原本的水管A(继承),另一头接上C(调用)。那么,A通过B,和C接上了。

public interface Target {
    public void methodA();
}
public class Adaptee {
    public void methodB() {
       //do something...
    }
}
public class Adapter extends Target {
    private Adaptee ee;
    public Adapter(Adaptee ee) {
       this.ee = ee;
    }
    public void methodA() {  //水管C Adapter的接口
       ee.methodB();  //实际调用了水管B Adaptee的接口
    }
}

Adapter和Proxy的区别:
adapter是适配adaptee和target之间的关系,proxy是realSubject对subject的代理。
adaptee和target无关系,realSubject和subject有继承关系。这就是他们的区别。


这里有篇文章很不错,链接一下:
http://yichao.blog.edu.cn/user2/yichaozhang/archives/2006/1501606.shtml

又找到网上另一个见解:
proxy 和adapter有一定类似,都是属于一种衔接性质的。
区别是很明显的,从大体上说:proxy是一种原来对象的代表,其它需要与这个对象打交道的操作都是和这个代表交涉,就象歌星的经纪人一样。
adapter目的则不是要虚构出一个代表者,而是为应付特定使用目的,将原来的类进行一些组合。





posted on 2008-01-31 14:28 EvanLiu 阅读(1250) 评论(0)  编辑  收藏 所属分类: 设计模式

只有注册用户登录后才能发表评论。


网站导航: