什麼是外觀模式?

2021-10-02 04:50:32 字數 1088 閱讀 3790

為子系統中的一組介面提供乙個一致的介面,facade模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。

外觀(facade)角色 :

客戶端可以呼叫這個角色的方法。此角色知曉相關子系統的功能和責任。在正常情況下,本角色會將所有從客戶端發來的請求委派到相應的子系統去。

子系統(subsystem)角色 :

可以同時有乙個或者多個子系統。每個子系統都不是乙個單獨的類,而是乙個類的集合。每個子系統都可以被客戶端直接呼叫,或者被外觀角色呼叫。子系統並不知道外觀角色的存在,對於子系統而言,外觀角色僅僅是另外乙個客戶端而已。

1.子系統角色,由若干個類組成

public class subclass1     

public void method2()

}public class subclass2

public void method2()

}public class subclass3

public void method2()

}

2.外觀角色類

public class facadeclass 

}

3.客戶端測試方法

public class clientclass 

}

facade類其實相當於子系統中subclass類的外觀介面,有了這個facade類,那麼客戶端就不需要親自呼叫子系統中的那些具體實現的子類了,也不需要知道系統內部的實現細節,甚至都不需要知道這些子類的存在,客戶端只需要跟facade類互動就好了,從而更好地實現了客戶端和子系統中具體類的解耦,讓客戶端更容易地使用系統。

同時,這樣定義乙個facade類可以有效地遮蔽內部的細節,免得客戶端去呼叫module類時,發現一些不需要它知道的方法。如上**,我的所有子類中的方法二都是方法一呼叫的方法,是配合方法一的,他們不需要被客戶端呼叫,而且具有一定的保密性,這樣使用外觀模式時就可以不被客戶端知道。

什麼是模式? 什麼是框架?

1 什麼是模式?模式,即pattern。其實就是解決某一類問題的方 你把解決某類問題的方法總結歸納到理論高度,那就是模式。alexander給出的經典定義是 每個模式都描述了乙個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在...

什麼是模式? 什麼是框架?

1 什麼是模式?模式,即pattern。其實就是解決某一類問題的方 你把解決某類問題的方法總結歸納到理論高度,那就是模式。alexander給出的經典定義是 每個模式都描述了乙個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在...

什麼是模式,什麼是框架

1 什麼是模式?模式,即pattern。其實就是解決某一類問題的方 你把解決某類問題的方法總結歸納到理論高度,那就是模式。alexander給出的經典定義是 每個模式都描述了乙個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在...