结构型模式之一:适配器模式
结构型模式之一:适配器模式
刀狂剑痴 发表于2年前
结构型模式之一:适配器模式
  • 发表于 2年前
  • 阅读 31
  • 收藏 0
  • 点赞 0
  • 评论 0

在现代Java框架中,适配器模式被频繁的使用。 当你想使用一个存在的类,但是他的接口不是你需要的那个,或者你想创造一个可以重复使用的类,能与有不相容接口的无关类协作。

1、适配器模式

适配器的用意可以用下面一个简单的例子来证明。简单例子的目的是将一个橘子适配成苹果。  

从下面的类图,适配器包括一个Orange类的实例,并继承Apple类,这看上去像当一个Orange对象得到一个适配器的皮肤,他就表现得像Apple对象。

2、适配器类图

3、适配器模式Java实现

的确,这可能是关于适配器模式最简单的例子,一个双工的适配器可能用得更多,实现一个双工的适配器,适配器必须实现一个接口,并包含两个实例,他还是一个简单的主意。

class Apple {
  public void getAColor(String str) {
    System.out.println("Apple color is: " + str);
  }
}
 
class Orange {
  public void getOColor(String str) {
    System.out.println("Orange color is: " + str);
  }
}
 
class AppleAdapter extends Apple {
  private Orange orange;
 
  public AppleAdapter(Orange orange) {
    this.orange = orange;
  }
 
  public void getAColor(String str) {
    orange.getOColor(str);
  }
}
 
public class TestAdapter {
  public static void main(String[] args) {
    Apple apple1 = new Apple();
    Apple apple2 = new Apple();
    apple1.getAColor("green");
 
    Orange orange = new Orange();
 
    AppleAdapter aa = new AppleAdapter(orange);
    aa.getAColor("red");
  }
}

4、适配器在Java SDK中

java.io.InputStreamReader(InputStream) (returns a Reader)
java.io.OutputStreamWriter(OutputStream) (returns a Writer)

在现实的在框架中, 这个意图可能不是十分的明显。尽管适配器在Eclipse中不是容易的发现, 这是在Eclipse 运行时中,一个邮件指向的使用。 

以上文章翻译自: http://www.programcreek.com/2011/09/java-design-pattern-adapter/

共有 人打赏支持
粉丝 18
博文 111
码字总数 82582
×
刀狂剑痴
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: