外觀模式(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 !