2009-09-17 27 views
2

如果我在我的應用程序中需要兩種模式,我會使用哪種設計模式,以便防止醜陋的條件代碼?應用程序目前是MVC,但我不想在我的控制器中使用條件代碼,除非必須,否則不要爲每個視圖使用兩個控制器。什麼設計模式?我在我的應用程序中需要兩種模式,編輯和查看

有什麼建議嗎?

+0

你能解釋一下「兩種模式」是什麼意思嗎? – 2009-09-17 03:22:11

+1

你不想在你的控制器中使用條件代碼?你會把它放在哪裏?有條件的代碼是你生活的一部分,習慣於改善它,而不是避免它:) – JoshJordan 2009-09-17 03:22:56

+0

更多細節,請! – TrueWill 2009-09-17 03:24:04

回答

1

Abstract Factory,或Proxy。您的控制器將包含某種Factory或Proxy實例,用於檢索「模式」並相應地對其執行操作。

0

看看JSR-168,Java portlet及其參考實現,它應該與您試圖實現的類似。

0

這種決定的適當位置是MVC的控制器。我建議你先寫在那裏。如果它真的是重複性的,那麼可以直截了當地弄清楚如何清理它:可以將條件邏輯移動到基類中,或者根據語言,可以使用某種過濾器來處理它。您也可以爲視圖創建一些「工廠」,這可以理解應用程序的「模式」。但是,從架構上來說,所有這些都在控制器中。

你是對的不想在視圖中。這會非常混亂。您可能需要兩個版本的視圖,一個用於「視圖」,另一個用於「編輯」。

最後,這是控制器的用途。祝你好運!

0

CafeTownsend使用PureMVC進行的演示中,也存在類似的情況,其中存在兩個不同的視圖和兩個獨立的介體。你絕對不需要條件代碼。我不知道您使用的是什麼技術和編程語言,但在Flex中,它將作爲ListView和EditView作爲子項的ViewStack:

當視圖創建時,相應的介體按需註冊。您可以使用以前的鏈接檢查其他實現。

相關問題