我们都知道java并不支持多继承,然后今日研习至接口-完全解耦一章节时发现这种队继承的限制仅是对类的继承而言,java虽不支持多类继承却可以多接口继承,这为代码的复用与代码的灵活性又增加了一笔,本章介绍到了适配器设计模式,觉得用处较大于是在此用新手的角度做个粗浅的解析。
首先所谓适配器设计模式,就是使适配器中的代码接受你所拥有的接口,并产生你所需要的接口。此种解释过于抽象,现在用现实生活中的例子来说明一下,就是,现在你拥有一个两个插口的插座,而你现在需要使用的电脑电源是三个插口的,所以你必须使用一个工具将原有的两项插口转变为你可用的三项插口,适配器便起到了这样一个工具的作用。这样解释直白便于理解。
其次,我来说说我认为的适配器设计模式所产生的最大效益。
1,当所使用的类库是被发现而非被创建的,你无法修改你想要使用的类,便可以通过适配器设计模式完成你想要完成的工作。
2,更利于代码的复用与转用,若手上握有一套堪称完美的代码,当想把这套代码很好的运用在其他环境中时适配器设计模式将会成为好的帮手,复制粘贴代码然后再修改的方法是最费时费力的方法,相比而言运用适配器设计模式就经济聪明的多。
多说废话无益,直接上代码让大家直观了解。
假如(此时幻想状态)我手上有一套经过测试一切良好的代码,并且此代码可以用在我其他环境的新项目中。
class OldSystem{//已有系统
public void PerfectFunction(){
………………
}
}
interface Itarget{//新环境的接口
void Function();
}
class NewSystem{//另外一个系统
public void Process(Itarget target){//此处注意所传递的参数为接口或者抽象类,不是具体的类
}
}
class Adapter implements Itarget{//适配的对象
OldSystem adaptee//被适配的对象
public void Function(){
adaptee.PerfectFunction();
……………………………………
}
}
此处给出的都是对象适配器设计模式,介于类适配器设计模式具有高耦合的特点,大多不建议采用,此处便不再赘述。
由于本人写的代码简单易理解,在此就不用我苍白的语言解释了,程序代码可以直观的理解。希望本人的理解可以对学习新手带去一点帮助,再次呼唤大家给与指正批评,也期待多多交流。谢谢。
更多详细理解可以参阅《设计模式》。