facade模式注重的是簡化介面,為乙個複雜子系統提供乙個簡單介面。 facade pattern:簡化客戶程式與子系統之間的互動介面,將複雜系統的內部子系統與客戶程式之間的依賴解耦。
facade模式定義了乙個高層介面,為子系統中的一組介面提供乙個一致的介面,這個介面使得這一子系統更加容易使用。
facade模式對客戶遮蔽了子系統元件,因而減少了客戶處理的物件的數目並使得子系統使用起來更加方便。facade模式實現了子系統與客戶之間的松耦合關係,而子系統內部的功能元件往往是緊耦合的。松耦合關係使得子系統的元件變化不會影響到它的客戶。
對於操作a,b,c而言,如果僅僅通過客戶端來運算元據物件,將生成a,b,c相應的物件(完全由客戶自己建立),比較繁瑣。
通過將操作a,b,c的操作隱藏到facadeoperater類中進行相應的操作,提供給客戶端的就僅僅是乙個方法而已,簡單,方便,易於維護。
也就是說將a,b,c的操作整合到facadeoperater類中。
a,b,c**如下:
1using
system;
2using
system.collections.generic;
3using
system.text;45
namespace
facadepatternsam617
else
1821
return
result;22}
23}24}
2526
27using
system;
28using
system.collections.generic;
29using
system.text;
3031
namespace
facadepatternsam
3242
else
4346
return
result;47}
48}49}
5051
52using
system;
53using
system.collections.generic;
54using
system.text;
5556
namespace
facadepatternsam
5767
else
6872
return
result;73}
74}75}
76將這3個類的操作整合;
1using
system;
2using
system.collections.generic;
3using
system.text;45
namespace
facadepatternsam621
else
2226
return
result;27}
28}29}
30運算元據為:
1using
system;
2using
system.collections.generic;
3using
system.text;45
namespace
facadepatternsam619
public
string
name
2025}26
27public
float
age2833}
3435
public
float
number
364142}
43}44}
45客戶端**:一種是沒外觀模式的 一種為用這種模式的,當然 這個例子比較簡單,**量差不多
1using
system;
2using
system.collections.generic;
3using
system.text;45
namespace
facadepatternsam620
else
2124
console.writeline();
25console.readline();
2627
//外觀模式操作
28facadeoperater oper
=new
facadeoperater();
29clientdata obj
=new
clientdata(
"yyyyyyyyyyy",
50,
60);
30if
(oper.verifyall(obj))
3134
else
3538
console.readline();39}
40}41}
42顯示結果如下所示:
外觀模式(facade pattern)
外觀模式,為子系統的一組介面提供乙個統一的介面,此模式定義了乙個高層介面,這乙個高層介面使的子系統更加容易使用。典型的分層例子是net三層架構,介面層與業務邏輯層分離,業務邏輯層與資料訪問層分類。這樣可以為子系統提供統一的介面和介面,降低了系統的耦合性。隨著功能增加及程式的重構,系統會變得越來越複雜...
外觀模式(Facade Pattern)
模式動機 引入外觀角色之後,使用者只需要直接與外觀角色互動,使用者與子系統之間的複雜關係由外觀角色來實現,從而降低了系統的耦合度。模式動機 外觀模式 facade pattern 外部與乙個子系統的通訊必須通過乙個統一的外觀物件進行,為子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面...
外觀模式(Facade Pattern)
外觀模式定義 為子系統中的一組介面提供乙個一致的介面 此模式定義了乙個高層介面,該介面使得這一子系統更加容易使用 站在person的角度思考其實不關心投資的具體細節,關注的是投資這個動作,如此一來,我們應該考慮封裝具體實現細節,對外提供統一的方法進行呼叫,這樣將使介面呼叫方和複雜的實現解耦 特別要注...