您的位置:首页 > 其它

适配器模式

2013-04-17 11:13 204 查看
  适配器是什么? 我理解的是就像生活中的插口转换器, 本来是USB接口的,你要想使用直流电,就得接上一个转换器。

用书上的例子举例:

  比如,在一个画图的小程序中,你已经实现了绘制点、直线、方块等图形的功能。而且为了让客户程序在使用的时候不用去关心它们的不同,还使用了一个抽象类来规范这些图形的接口。现在你要来实现圆的绘制,这时你发现在系统其他的地方已经有了绘制圆的实现。在你庆幸之余,发现系统中已有的方法和你在抽象类中规定的方法名称不一样!这可怎么办?修改绘制圆的方法名,就要去修改所有使用它的地方;修改你的抽象类的方法名,也要去修改所有图形的实现方法以及已有的引用。还有其它的方法没有?那就是适配器模式了。

适配器的组成:

目标角色: 定义client使用的接口。

被适配角色:这个角色有一个已经存在并使用了的接口,而这个接口是需要我们适配的。

适配器角色:它将“被适配角色”已经有的接口转换成为目标橘色希望的接口。

代码:

class Circle extends Shape
{
//这里引用了TextCircle
private TextCircle tc;
public Circle ()
{
tc= new TextCircle(); //初始化
}
void public display()
{
tc.displayIt(); //在规定的方法里面调用TextCircle 原来的方法
}
}


Target(目标角色)就是Sharp类,Circle就是适配器角色, TextCircle就是被适配器角色。

适配器模式和代理模式很类似,书上解释“两者的主要区别在于代理模式应用的情况是不改变接口命名的,而且是对已有接口功能的一种控制;而适配器模式则强调接口转换。”

不是很明白,期待以后对代理模式能更深入了解吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: