您的位置:首页 > 其它

设计模式——适配器模式

2016-05-02 20:21 405 查看

适配器模式

  一个类提供了一个接口的实现,而另一个类要求通过另一个接口来使用该实现。两个接口不同肯定不能一起工作。根据开闭原则,接口确定好后是不能修改的,此时需要通过适配器来完成接口的转换。在原有的实现类或接口外包一层后,变为使用者可以使用的类或接口。

  类适配器模式,通过继承实现。

//原有的接口
public interface Old {
public void oldMethod();
}
//原有接口的实现
public class OldImpl implements Old {
public void oldMethod() {
...
}
}
//新的接口
public interface New {
public void newMethod();
}
//新的接口的实现
public class NewImpl implements New {
public void newMethod() {
...
}
}
//适配器类,通过继承原有的实现类来实现
public class Adapter extends OldImpl implements New {
public void newMethod() {
super.oldMethod();
}
}
//使用者面向新的接口编程
public class User {
public void use(String str) {
//根据str获取一个具体的New接口的实现,IOC思想
New newIn = getResource().getXML(XML路径).getBean(str);
//实现来自Adapter会调用原有的方法,来自NewImpl会调用新的方法
newIn.newMethod();
}
}


  对象适配器模式,通过对象组合方式实现。根据合成复用原则,能用对象组合尽量不要用类继承。

//适配器,直接面向原有的实现编程
public class Adapter implements New {
private Old oldIn;
public Adaper() {
this.oldIn = new OldImpl();
}
public void newMethod() {
oldIn.oldMethod();
}
}
//使用者面向新的接口编程
public class User {
public void use(String str) {
//根据str获取一个具体的New接口的实现,IOC思想
New newIn = getResource().getXML(XML路径).getBean(str);
newIn.newMethod();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: