java外觀模式 Facade

2021-09-09 04:16:58 字數 2195 閱讀 4602

1.外觀模式(facade

[fə'sɑd] n. 正面;表面;外觀)

外觀模式:可以理解為 中介模式(沒錯,就是在使用者與系統之間,增加了乙個類,而這個類就是外觀類,所以這個模式就叫外觀模式)

如下圖:

在如下圖:

2.**實現,我們就以第二個圖為例子

2.1.首先建立三個子系統類

建立cpu類:

1

package

design.pattern.facade;23

public

class

cpu 78

public

void

shutdown()

11 }

view code

同理建立memery類:

1

package

design.pattern.facade;23

public

class

memery 78

public

void

shutdown()

11 }

view code

最後建立disk類:

1

package

design.pattern.facade;23

public

class

disk 78

public

void

shutdown()

11 }

view code

2.2. 建立外觀類,或者叫 中介類 computer,為了能夠使用多型,這裡先建立乙個computer的抽象類

1

package

design.pattern.facade;23

/*4* computer就是外觀介面類,

5* 這裡是要使用介面或者抽象類的了,到時使用者呼叫的都是這種型別的,

6* 這樣就算我們修改了內部,對使用者的操作都沒有影響

7* **/8

public

abstract

class

computer

view code

在建立乙個dellcomputer繼承了computer類:

1

package

design.pattern.facade;23

public

class dellcomputer extends

computer

1819

public

dellcomputer(cpu cpu,memery mem,disk disk)

2425

//下面這兩個方法都一樣,都是統一呼叫了3個子系統的方法

26@override

27public

void

turnon()

3233

@override

34public

void

shutdown()

3940 }

view code

2.3.最後,來使用一下,建立乙個使用者 tommy類:

1

package

design.pattern.facade;23

public

class

tommy

9 }

view code

執行結果:

3.小總結:

3.1. 什麼時候使用外觀模式:

當使用者僅關心呼叫的介面,而不關心內部運作時,可以嘗試使用

3.2. 優點:

使用了中介類嘛,稍微解耦了一下,不過也正因為這個中介類,導致了它不可避免的硬傷

3.3. 缺點:

使用者呼叫這邊幾乎沒什麼問題,關鍵是,當子系統類有變動時(新增、刪除、或修改方法),中介類(外觀類)必須做修改····

Java外觀模式(Facade模式)

外觀模式 facade 的定義 為子系統中的一組介面提供乙個一致的介面。facade乙個典型應用就是資料庫jdbc的應用,如下例對資料庫的操作 public class dbcompare connection conn null preparedstatement prep null result...

Java外觀模式(Facade模式)

facade乙個典型應用就是資料庫jdbc的應用,如下例對資料庫的操作 public class dbcompare catch ceptione finally 上例是jsp中最通常的對資料庫操作辦法。在應用中,經常需要對資料庫操作,每次都寫上述一段 肯定比較麻煩,需要將其中不變的部分提煉出來,做...

外觀模式(Facade)

外觀模式的定義是,為子系統中的一組介面提供乙個一致的inte ce介面介面。外觀模式是個很簡單,但很重要的模式,它主要思想是將表現層和邏輯層隔離,封裝底層的複雜處理,只為使用者提供簡單的介面,這樣的例子隨處可見。外觀模式也叫門面模式,它很多時候更是一種系統架構的設計,在我所做的專案中,就實現了門面模...