适配器模式
【摘要】
目的:原接口的参数等不满足现有条件,或者完全不同,同时不想改变原接口。
优点:1.可以让任何两个没有关联的类一起运行
2。提高了类的复用,解决了现存类和复用环境要求不一致的问题
缺点:增加了类的数量,增加了结构的复杂性。
类适配器:
适配器需要实...
目的:原接口的参数等不满足现有条件,或者完全不同,同时不想改变原接口。
优点:1.可以让任何两个没有关联的类一起运行
2。提高了类的复用,解决了现存类和复用环境要求不一致的问题
缺点:增加了类的数量,增加了结构的复杂性。
类适配器:
适配器需要实现接口
类图:
代码:
新增的接口(想调用老接口)
-
interface Target
-
{
-
public void newMethod();
-
}
原有的接口
-
public interface OldMethod{
-
-
void oldMethod();
-
}
原有的接口实现
-
public class OldMethodImpl implements OldMethod{
-
-
@Override
-
public void oldMethodImpl()
-
{老方法,被调用");
-
}
-
-
}
适配器
-
public class Adapter extends OldMethodImpl implements NewMethod{
-
-
@Override
-
public void newMethod() {
-
oldMethodImpl();
-
}
-
-
}
调用
-
-
public class App {
-
-
public static void main(String[] args) {
-
-
Target target= new Adapter();
-
target.newMethod();
-
}
-
}
类适配器:
采用组合方式
类图:
代码:
适配器类
-
class ObjectAdapter implements Target
-
{
-
private OldMethodImpl oldMethodImpl ;
-
public ObjectAdapter(OldMethodImpl oldMethodImpl)
-
{
-
this.oldMethodImpl=oldMethodImpl;
-
}
-
public void newMethod()
-
{
-
oldMethodImpl.oldMethodImpl();
-
}
-
}
调用
-
public class ObjectAdapterTest
-
{
-
public static void main(String[] args)
-
{
-
OldMethodImpl oldMethodImpl = new OldMethodImpl();
-
Target target = new ObjectAdapter(adaptee);
-
target.newMethod();
-
}
-
}
文章来源: baocl.blog.csdn.net,作者:小黄鸡1992,版权归原作者所有,如需转载,请联系作者。
原文链接:baocl.blog.csdn.net/article/details/102561498
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)