### 外觀模式
為子系統中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。(摘抄)
外觀模式體現了依賴倒轉原則和迪米特法則,抽出來一個外觀類作為客戶端調用接口,當客戶端調用的時候只需要知道外觀類的方法和實現的效果即可,而不需要去知道具體的功能類做了那些工作,其實仔細看外觀模式也會有很多前面提到過的設計模式的影子,這些影子就是設計模式的原則和法則,所以把原則弄明白了一切的設計模式都不在話下,會被我們踩在腳下的
~~~
class A
{
public void methodA()
{
//A的操作
}
}
class B
{
public void methodB()
{
//B的操作
}
}
class C
{
public void methodC()
{
//C的操作
}
}
class D
{
public void methodD()
{
//D的操作
}
}
class Facade
{
A a;
B b;
C c;
D d;
public Facede() {
// TODO Auto-generated constructor stub
a = new A();
b = new B();
c = new C();
d = new D();
}
public void method1()
{
a.methodA();
b.methodB();
}
public void method2()
{
c.methodC();
d.methodD();
}
}
class Client
{
public static void main()
{
Facede facade = new Facade();
facade.method1();
facade.method2();
}
}
~~~
簡單的代碼實現就在上面了,首先要弄清楚這個外觀模式在什么時候調用,外觀模式是一個提供給客戶調用功能類的接口,他自己本身是和功能類沒有任何關系的。
在平時給軟件設計系統時也應該做到把層與層之間的劃分做得很清晰,同時隨著功能類的越來越多,提供一個簡單的調用接口,可以有效的減少層與層之間的耦合。
他的好處還有當你要給客戶端修改調用的功能類時直接更改外觀類中的代碼就行了。
同時當你需要給一個別人寫的軟件拓展功能的時候,例如一個小插件,但是如果這個軟件很龐大,代碼調用很繁雜,這時你開發一個Facade類,把需要調用的類和一些代碼處理的工作交給Facade,那你開發小插件調用的時候就會很方便而且很清晰,因為Facade都已經整理好了,而且你要是要寫多個小插件,但是功能又有重疊的地方,那么這個Facade的作用就更大了
- 前言
- (1)代碼無錯就是優?——簡單工廠模式
- (2)商場促銷——策略模式
- (3)&(4)&(5) 設計模式原則
- (6)穿什么有這么重要?——裝飾模式
- (7)為別人做嫁衣——代理模式
- (8)雷鋒依然在人間——工廠方法模式
- (9)簡歷復印——原型模式
- (10)考題抄錯會做也白搭——模板方法模式
- (11)迪米特法則
- (12)牛市股票還會虧錢?—— 外觀模式
- (13)好菜每回味不同——建造者模式
- (14)老板回來,我不知道——觀察者模式
- java實現事件委托
- (15)就不能不還DB嗎?—— 抽象工廠模式
- (16)無盡加班何時休息——狀態模式
- (17)在NBA我需要翻譯——適配器模式
- (18)如果再回到從前——備忘錄模式
- (19)分公司=部門——組合設計模式
- (20)想走?可以!先買票——迭代器模式
- (21)有些類也需計劃生育——單例模式
- (22)手機軟件何時統一——橋接模式
- (23)烤羊肉串引來的思考——命令模式
- (24)加薪非要老總批?——職責鏈模式
- (25)世界需要和平——中介者模式
- (26)項目多也別傻做——享元模式
- (28)男人和女人——訪問者模式