設計模式(10) 外觀模式

2021-09-10 08:33:45 字數 1071 閱讀 1855

外觀模式(facade pattern)隱藏系統的複雜性,並向客戶端提供了乙個客戶端可以訪問系統的介面。這種型別的設計模式屬於結構型模式,它向現有的系統新增乙個介面,來隱藏系統的複雜性。

這種模式涉及到乙個單一的類,該類提供了客戶端請求的簡化方法和對現有系統類方法的委託呼叫。

用乙個簡單的例子來解釋一下吧,電腦整機是 cpu、記憶體、硬碟的外觀。有了外觀以後,啟動電腦和關閉電腦都簡化了。直接 new 乙個電腦,在 new 電腦的同時把 cpu、記憶體、硬碟都初始化好並且接好線。對外暴露方法(啟動電腦,關閉電腦):

class program

}public class cpu

public void shutdown()

}public class disk

public void shutdown()

}public class memory

public void shutdown()

}public class computer

public void start()

public void shutdown()

}

輸出結果

computer start begin

cpu is start...

disk is start...

memory is start...

computer start end

***************==

computer shutdown begin

cpu is shutdown...

disk is shutdown...

memory is shutdown...

computer shutdown end...

這種實現方式就類似三層架構。不過雖然客戶端與外觀類之間解耦了,但是外觀類內部耦合還是很嚴重的

外觀模式的優點:

外觀模式的缺點:

設計模式10 外觀模式

外觀模式 facade pattern 外部與乙個子系統的通訊必須通過乙個統一的外觀物件進行,為子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。外觀模式又稱為門面模式,它是一種物件結構型模式。外觀模式包含如下角色 結果 operation a.o...

Java設計模式10 外觀模式

外觀模式 也稱為門面模式 定義了乙個高層介面,為子系統中的一組介面提供了乙個一致的介面,從而使得這一組子系統更加容易使用。這個模式很好的遵循了迪公尺特法則 最少知識法則 即乙個軟體應當盡可能少的與其他實體發生相互作用。醫院例子 現代的軟體系統都是比較複雜的,設計師處理複雜系統的乙個常見方法便是將其 ...

設計模式完結 10 外觀模式

來個中間類 即 外觀類 來關聯多個業務類,與多個業務互動,客戶端與外觀類互動,降低客戶端和這些類的耦合。如果業務類有變化,外觀類 定義為 抽象類,多個實現。乙個客戶類需要和多個業務類互動,而這些需要互動的業務類經常會作為乙個整體出現,由於涉及到的模擬較多,導致使用時 較為複雜,此時,特別需要乙個類似...