2012-02-20 68 views
7

我正在研究設計模式的問題。在這種情況下,我想實現的設計模式「門面設計模式「門面」

我知道,「可可觸摸」爲我們提供完整的解決方案在我們的項目中應用設計模式(例如NSNotificationCenter - 實現觀察者設計模式)

我的問題是: - 我們有能力使用設計模式'門面'以及在觀察員的情況下設計模式。

現在我實現了「門面」這樣的:

,比如我有一個實現一些計算一些類。 '門面'類結合我需要計算的所有類。例如我有類A,B,C和Facade(包含A,B和C類)。

當我想計算一些東西時,我只是創建我的'門面'並傳遞一些參數進行計算。在這種情況下,我不知道類A,B,C,並且此Facade對象僅爲我提供一個訪問點。

此設計模式封裝了對象並簡化了應用程序。

它是否正確實施?

回答

7

另一個實施門面模式 - 比薩呼叫服務的一個很好的例子。例如,披薩服務(子系統)非常大,它由三個部門(界面)組成:訂單部門,折扣部門,配送部門。每個部門都有自己的邏輯和接口。 您可以簡單地在其上實施門面模式。 Here這個例子更詳細。

+0

感謝一個很好的例子! – 2012-06-18 14:52:10

1

門面模式背後的動機是爲經常使用的情況提供一個簡化的接口,同時適應跨越簡化接口的能力,並在必要時與門面後面的更復雜的方面進行交互。正如你所描述的你的實現,它肯定會符合描述,並且沒有理由不能將正面模式與通知/觀察者模式結合使用...

4

這是正確的解釋我沒有看到實施)。與現實生活中的門面模式的良好關聯是遙控 - 您可以運行電視功能,DVD等。

+0

感謝您的回覆!我喜歡它的例子(我的意思是電視和DVD) – 2012-02-20 15:46:56

7

Facade被定義爲一組接口的統一接口 - 排序更高級別的接口以降低複雜性。而不是處理幾個類,並知道每個類的API都減少到正面。你的解釋對我來說很合適。