世界上並沒有完美的程序,但是我們並不因此而沮喪,因爲寫程序就是一個不斷追求完美的過程。
- 意圖
對外提供統一接口,屏蔽內部負複雜的實現流程,例如:springMVC的 DAO Service Controller。 - 實例
// 功能接口
interface FacadeCap{
void play();
}
class FacadeCapImpl1 implements FacadeCap{
@Override
public void play() {
System.out.println("Facade1::play()");
}
}
class FacadeCapImpl2 implements FacadeCap{
@Override
public void play() {
System.out.println("Facade2::play()");
}
}
class FacadeCapImpl3 implements FacadeCap{
@Override
public void play() {
System.out.println("Facade3::play()");
}
}
// 外部統一調用接口
interface Facade{
void play1();
void play2();
void play3();
}
class FacadeImpl implements Facade{
private FacadeCap facadeCap1;
private FacadeCap facadeCap2;
private FacadeCap facadeCap3;
public FacadeImpl(){
facadeCap1 = new FacadeCapImpl1();
facadeCap2 = new FacadeCapImpl2();
facadeCap3 = new FacadeCapImpl3();
}
@Override
public void play1() {
facadeCap1.play();
}
@Override
public void play2() {
facadeCap2.play();
}
@Override
public void play3() {
facadeCap3.play();
}
}
- 測試
// 測試
class FacadeTest{
public static void main(String[] args){
Facade facade = new FacadeImpl();
facade.play1();
facade.play2();
facade.play3();
}
}
運行結果:
Facade1::play()
Facade2::play()
Facade3::play()