開通VIP,暢享免費電子書等14項超值服
首頁
好書
留言交流
下載APP
聯(lián)系客服
2013.09.12
結(jié)構(gòu)圖
SubSystem Class 子系統(tǒng)類集合 實現(xiàn)子系統(tǒng)的功能,處理Facade對象指派的任務,注意子類中沒有Facade的任何信息,即沒有對Facade對象的引用
代碼實現(xiàn)
首先是四個子系統(tǒng)的類
public
class
SubSystemOne
{
void
MethodOne()
Console.WriteLine(
"子系統(tǒng)方法一"
);
}
SubSystemTwo
MethodTwo()
"子系統(tǒng)方法二"
SubSystemThree
MethodThree()
"子系統(tǒng)方法三"
SubSystemFour
MethodFour()
"子系統(tǒng)方法四"
外觀類
Facade
SubSystemOne one;
SubSystemTwo two;
SubSystemThree three;
SubSystemFour four;
Facade()
one =
new
SubSystemOne();
two =
SubSystemTwo();
three =
SubSystemThree();
four =
SubSystemFour();
MethodA()
"\n方法組A()----"
one.MethodOne();
two.MethodTwo();
four.MethodFour();
MethodB()
"\n方法組B()----"
three.MethodThree();
客戶端調(diào)用
Program
static
Main(
string
[] args)
Facade facade =
Facade();
facade.MethodA();
facade.MethodB();
Console.ReadLine();
運行結(jié)果如下
總結(jié)
首先,在設(shè)計初期階段,應該要有意識的將不同的兩個層分離。
其次,在開發(fā)階段,子系統(tǒng)往往因為不斷的重構(gòu)演化而變得越來越復雜。增加外觀Facade可以提供一個簡單的接口,減少它們之間的依賴。
第三,在維護一個遺留的大型系統(tǒng)時,可能這個系統(tǒng)已經(jīng)非常難以維護和擴展了??梢詾樾孪到y(tǒng)開發(fā)一個外觀Facade類,來提供設(shè)計粗糙或高度復雜的遺留代碼的比較清晰簡單的接口,讓新系統(tǒng)與Facade對象交互,F(xiàn)acade與遺留代碼交互所有復雜的工作。
微信登錄中...請勿關(guān)閉此頁面