Facade,為子系統(tǒng)中的一組接口提供一個(gè)一致的界面。
此模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。
class SubSystemOne{ public void MethodOne() { 具體實(shí)現(xiàn);}}class SubSystemTwo{ public void MethodTwo() { 具體實(shí)現(xiàn);}}class SubSystemThree{ public void MethodThree() { 具體實(shí)現(xiàn);}}class SubSystemFour{ public void MethodFour() { 具體實(shí)現(xiàn);}}class Facade{ PRivate SubSystemOne one = new SubSystemOne(); private SubSystemTwo two = new SubSystemTwo(); private SubSystemThree three = new SubSystemThree(); private SubSystemFour four = new SubSystemFour(); public void MethodA() { one.MethodOne(); two.MethodTwo(); four.MethodFour(); } public void MethodB() { three.MethodThree(); one.MethodOne(); }}main(){ Facade facade = new Facade(); facade.MethodA(); facade.MethodB();}外觀模式體現(xiàn)了依賴倒轉(zhuǎn)原則和迪米特法則。
外觀模式的使用情況:
1、在設(shè)計(jì)初期階段,應(yīng)該要有意識(shí)的將不同的兩個(gè)層分離;
2、在開發(fā)階段,子系統(tǒng)往往因?yàn)椴粩嗟刂貥?gòu)演化而變得越來越復(fù)雜,增加Facade可以提供一個(gè)簡單的接口,減少它們之間的依賴;
3、在維護(hù)一個(gè)遺留的大型系統(tǒng)時(shí),可能這個(gè)系統(tǒng)已經(jīng)非常難以維護(hù)和擴(kuò)展了。當(dāng)開發(fā)一個(gè)新系統(tǒng)需要調(diào)用這個(gè)遺留系統(tǒng)的功能時(shí),可以開發(fā)一個(gè)Facade類,來為遺留代碼提供一個(gè)簡單接口,讓新系統(tǒng)與Facade對(duì)象交互,F(xiàn)acade與遺留代碼交互所有復(fù)雜的工作。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注