Java設計模式總結(二)外觀模式

外觀模式

外觀模式的目的是對系統核心功能的提純,通過爲子系統提供一個接口,來方便使用。

常見的比如swing 的 JOptionPane.showConfirmDialog(),如果直接使用JOptionPane的構造函數來構造無疑會很麻煩,需要設置很多參數,而該功能卻是在開發過程中常常需要用到的,這時候將其提純出來,直接通過靜態函數的方式,預配置一些行爲,這種方式就可以稱之爲外觀模式。
在這裏插入圖片描述
外觀模式的目的是爲了隱藏系統的一些複雜實現,僅提純出核心的部分來供外部調用。

這一模式的設計方式有很多種,可以通過設置一個類似於工具類那樣的全靜態方法類,也可以通過給原本的類新增靜態方法的方式。外觀模式的目的並不是完全封裝實現,只是提供一個可供預覽,一目瞭然的接口。

外觀能減少一些系統的複雜度,當然僅僅在不使用系統更復雜的功能的時候。

如此說來,外觀和工具函數有什麼區別呢?

  1. 外觀類的成員方法不全是靜態方法,而工具函數通常都由靜態方法組成
  2. 外觀依託於一個子模塊或者子系統的代碼,而工具函數通常要求獨立

JOptionPane的類圖(省去了實例屬性)
在這裏插入圖片描述