facade 的定義: 為子系統中的一組介面提供乙個一致的介面。
facade 乙個典型應用就是資料庫 jdbc 的應用 , 如下例對資料庫的操作 :
public class dbcompare
} catch( ***ception e ) finally }
上例是 jsp 中最通常的對資料庫操作辦法。
在應用中 , 經常需要對資料庫操作 , 每次都寫上述一段程式碼肯定比較麻煩 , 需要將其中不變的部分提煉出來 , 做成乙個介面 , 這就引入了 facade 外觀物件。如果以後我們更換 class.forname 中的 也非常方便 , 比如從 mysql 資料庫換到 oracle 資料庫 , 只要更換 facade 介面中的 driver 就可以。
我們做成了乙個 facade介面 , 使用該介面 , 上例中的程式就可以更改如下 :
public class dbcompare
} catch( ***ception e ) finally }
可見非常簡單 , 所有程式對資料庫訪問都是使用改介面 , 降低系統的複雜性 , 增加了靈活性。
如果我們要使用連線池 , 也只要針對 facade 介面修改就可以。
由上圖可以看出 , facade 實際上是個理順系統間關係 , 降低系統間耦合度的乙個常用的辦法 , 也許你已經不知不覺在使用 , 儘管不知道它就是 facade 。
設計模式之Facade 外觀
為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。何時使用外觀模式?這要分三個階段來說,首先,在設計初期階段,應該要有意識的將不同的兩個層分離,比如經典的三層構架,就需要考慮在資料訪問層和業務邏輯層,業務邏輯層和表示層的層與層之間建立外觀fa ad...
設計模式之Facade 外觀
facade的定義 為子系統中的一組介面提供乙個一致的介面。facade乙個典型應用就是資料庫jdbc的應用,如下例對資料庫的操作 public class dbcompare catch ception e finally 上例是jsp中最通常的對資料庫操作辦法。在應用中,經常需要對資料庫操作,每...
設計模式之Facade 外觀
facade的定義 為子系統中的一組介面提供乙個一致的介面.facade乙個典型應用就是資料庫jdbc的應用,如下例對資料庫的操作 public class dbcompare catch ception e finally 可見非常簡單,所有程式對資料庫訪問都是使用改介面,降低系統的複雜性,增加了...