设计模式——适配器模式

来源:互联网 发布:网络用语沙发啥意思 编辑:程序博客网 时间:2024/06/16 16:08

适配器模式

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

//原有的接口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();    }}
0 0
原创粉丝点击