日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式笔记 10.Facade 外观模式(结构型模式)

發布時間:2025/4/5 asp.net 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式笔记 10.Facade 外观模式(结构型模式) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

10. Facade 外觀模式????? 2008-8-18

?

動機(Motivation)

上述A方案的問題在于組件的客戶和組件中各種復雜的子系統有了過多的耦合,隨著外部客戶程序和各子系統的演化,這種過多的耦合面臨很多變化的挑戰。

如何簡化外部客戶程序和系統間的交互接口?如何將外部客戶程序的演化和內部子系統的變化之間的依賴相互解耦?

意圖(Intent)

為子系統中的一組接口提供一個一致的界面Fa?ade模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。???????——《設計模式》GoF

?

基本代碼:??

子系統類:?

????class?SubSystemOne
????{
????????
public?void?MethodOne()
????????{
????????????Console.WriteLine(
"子系統方法一");
????????}
????}

????
class?SubSystemTwo
????{
????????
public?void?MethodTwo()
????????{
????????????Console.WriteLine(
"?子系統方法二");
????????}
????}

????
class?SubSystemThree
????{
????????
public?void?MethodThree()
????????{
????????????Console.WriteLine(
"?子系統方法三");
????????}
????}

????
class?SubSystemFour
????{
????????
public?void?MethodFour()
????????{
????????????Console.WriteLine(
"?子系統方法四");
????????}
????}

??Facade類:

????class?Facade
????{
????????SubSystemOne?one;
????????SubSystemTwo?two;
????????SubSystemThree?three;
????????SubSystemFour?four;

????????
public?Facade()
????????{
????????????one?
=?new?SubSystemOne();
????????????two?
=?new?SubSystemTwo();
????????????three?
=?new?SubSystemThree();
????????????four?
=?new?SubSystemFour();
????????}

????????
public?void?MethodA()
????????{
????????????Console.WriteLine(
"\n方法組A()?----?");
????????????one.MethodOne();
????????????two.MethodTwo();
????????????four.MethodFour();
????????}

????????
public?void?MethodB()
????????{
????????????Console.WriteLine(
"\n方法組B()?----?");
????????????two.MethodTwo();
????????????three.MethodThree();
????????}
????}

客戶端代碼:

????class?Program
????{
????????
static?void?Main(string[]?args)
????????{
????????????Facade?facade?
=?new?Facade();

????????????facade.MethodA();
????????????facade.MethodB();

????????????Console.Read();
????????}
????}

?

Facade的幾個要點:

從客戶程序的角度來看,Facade模式不僅簡化了整個組件系統的接口,同時對于組件內部與外部客戶程序來說,從某種程度上也達到了一種“解耦”的效果——內部子系統的任何變化不會影響到Fa?ade接口的變化。

Fa?ade設計模式更注重從架構的層次去看整個系統,而不是單個類的層次。Fa?ade很多時候更是一種架構設計模式。

Fa?ade設計模式并非一個集裝箱,可以任意地放進任何多個對象。Fa?ade模式中組件的內部應該是“相互耦合關系比較大的一系列組件”,而不是一個簡單的功能集合。

注意區分Fa?ade模式、Adapter模式、Bridge模式與Decorator模式。Fa?ade模式注重簡化接口,Adapter模式注重轉換接口,Bridge模式注重分離接口(抽象)與其實現,Decorator模式注重穩定接口的前提下為對象擴展功能。

適用性:

1.為一個復雜子系統提供一個簡單接口。

2.提高子系統的獨立性。

3.在層次化結構中,可以使用Facade模式定義系統中每一層的入口。

?

?

轉載于:https://www.cnblogs.com/MaoBisheng/archive/2008/08/18/1270604.html

總結

以上是生活随笔為你收集整理的设计模式笔记 10.Facade 外观模式(结构型模式)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。