最近在很多场合都看见设计模式的影子,一直以来,都投入主要时间在搞算法与数据结构,很来发现设计模式真的很重要。有的时候代码的可维护、可重用、可扩展确实胜过单纯的算法效率高。所以拾起大牛书籍《大话设计模式》同时参考网上诸大牛的博客,开始我的设计模式之旅。由于平时编程时用C/C++,现在学学Java,也练练Java语法。
今天先介绍一下适配器模式。
概念:
适配器模式(Adapter):将一个接口转化为用户希望的另外一个借口,Adapter模式使原来由于借口不兼容而不能一起工作的那些类可以一起工作了。
实现:
适配器继承或实现抽象类或接口,然后在内部封装一个用户希望使用的类对象,通过覆盖父类的接口方法的基类方法调用用户希望使用的对象的方法,完成接口的统一。
优点:
主要适用于接口与使用环境不一致,统一接口而不用多方更改代码。
示例代码:
package Pattern;
/*
* 接口类
*/
abstract class Target {
public void Request() {
System.out.println("普通请求!");
}
}
/*
* 待适配类
*/
class Adaptee {
public void SpecificRequest() {
System.out.println("特殊请求!");
}
}
/*
* 适配器类
*/
class Adapter extends Target {
private Adaptee myAdaptee = new Adaptee();
public void Request() {
myAdaptee.SpecificRequest();
}
}
public class Pattern {
public static void main(String[] args) {
try {
Target myTarget = new Adapter();
myTarget.Request();
} catch (Exception e) {
System.out.println("Java异常发生!");
}
}
}