上文談到了適配器模式,要是Targer目標角色有20方法,那麼每個適配器都要去實現接口中這些方法,這樣做感覺太費勁。
這種情況下,可以考慮實現個默認適配器,然後實際的實現目標角色接口的類可以集成這個默認適配器,然後重寫默認實現的方法即可。
一、原理圖
二、例子
下面以一個簡單例子來說明,假如有個接口,有5個方法,你需要實現這個接口,你每次只對其中一個方法感興趣,你如何用最簡單的方法去構造這個接口的實現類,看著
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-8-2 15:30:46
* 目標角色
*/
public interface Target {
void f1();
void f2();
void f3();
void f4();
void f5();
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-8-2 15:32:04
* 默認適配器角色,默認實現
*/
public class DefaultAdapter implements Target {
public void f1() {
}
public void f2() {
}
public void f3() {
}
public void f4() {
}
public void f5() {
}
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-8-2 15:33:54
* 實際類:通過重寫默認適配實現來實現自己感興趣的部分。
*/
public class MyInteresting extends DefaultAdapter{
public void f5(){
System.out.println("呵呵,我就對f5()方法感興趣,別的不管了!");
}
}
呵呵,這下方便多了,每次只需要實際去重寫一個類,而不是實現所有的接口方法。
這個在Java GUI編程中有著大量的應用。