設計模式之外觀模式(Facade)

2021-08-02 13:48:49 字數 1312 閱讀 2794

外觀模式是為了解決類與類之家的依賴關係的,像spring一樣,可以將類和類之間的關係配置到配置檔案中,而外觀模式就是將他們的關係放在乙個facade類中,降低了類類之間的耦合度,該模式中沒有涉及到介面。

看下類圖:(我們以乙個計算機的啟動過程為例)

我們先看下實現類:

public

class cpu

public

void

shutdown()

}

public

class memory

public

void

shutdown()

}

public

class disk

public

void

shutdown()

}

public

class computer

public

void

startup()

public

void

shutdown()

}

user類如下:

public

class user

}

輸出:start the computer!

cpu startup!

memory startup!

disk startup!

start computer finished!

begin to close the computer!

cpu shutdown!

memory shutdown!

disk shutdown!

computer closed!

如果我們沒有computer類,那麼,cpu、memory、disk他們之間將會相互持有例項,產生關係,這樣會造成嚴重的依賴,修改乙個類,可能會帶來其他類的修改,這不是我們想要看到的,有了computer類,他們之間的關係被放在了computer類裡,這樣就起到了解耦的作用,這,就是外觀模式!

設計模式之外觀模式(Facade)

facade外觀模式,是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和各子系統的演化,這種過多的耦合面臨很多變化的挑戰。在這裡我想舉乙個例子 比如,現在有一輛汽車,我們 客戶程式 要啟動它,那我們就要發動引擎 子系統1 使四個車輪 子系統2 ...

設計模式之外觀模式Facade

什麼是外觀模式,我想大家在網上一搜就有一大把結果,告訴你什麼是外觀模式,可能定義不完全一樣,但是意思確差不多,也就是它為子系統中的一組介面提供了乙個統一的介面 或者叫做介面 這樣的好處就是隱藏了子系統的細節。下面就簡單的談談我本人對該模式的使用和理解 1 為什麼要用這個東西 比如一,當你在設計分層架...

設計模式之外觀模式(Facade)

場景 病人去醫院看病,首先病人必須先 然後門診。如果醫生要求化驗,病人必須首先劃價,然後繳費,才可以到化驗部門做化驗。化驗後再回到門診室。解決這種不便的方法便是引進外觀模式,醫院可以設定乙個接待員的位置,由接待員負責代為 劃價 繳費 取藥等。這個接待員就是外觀模式的體現,病人只接觸接待員,由接待員與...