外觀模式(Facade)
外觀模式的意圖是:為子系統提供一個接口,便於它的使用。
解釋:
簡單的說,外觀模式就是封裝多個上層應用需要的方法,使得上層調用變得簡單,為上層提供簡單的 接口,是設計模式中一種比較簡單的設計思想,但是,也是最常用的一種設計模式。
舉例:
當 你想吃橘子的時候,你需要做那幾件事呢?
1:去買橘子
2:剝橘子
3:吃橘子
這樣去一步一步的調用各個方法是不是覺得很麻煩呢?所以,我們需要做的工作就是簡化這些步驟,把它封裝 在一個方法中實現。
實現:
下面給出實現代碼的UML圖。

下面給出源代碼:
1.oranger
package com.brucezhang.facade;
public class oranger {
public void eat() {
System.out.println("eat oranger !");
}
public void buy() {
System.out.println("buy oranger !");
}
public void wash() {
System.out.println("wash oranger !");
}
}
2.my_oranger
package com.brucezhang.facade;
public class my_oranger {
private oranger oranger;
public my_oranger(oranger oranger){
this.oranger = oranger;
}
public void go_oranger() {
oranger.buy();
oranger.wash();
oranger.eat();
}
}
3.people
package com.brucezhang.facade;
public class people {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
my_oranger myOranger = new my_oranger(new oranger());
myOranger.go_oranger();
}
}
由代碼中我們可以看出,我們想吃橘子的時候只需要調用 go_oranger() 方法即可。
下面 是運行的結果:
buy oranger ! wash oranger ! eat oranger !