2012-03-01 37 views
2

在學術上,我熟悉MVC範式,但實際上,我是一個新手。我正在實現我的第一個「真正的」MVC應用程序(AS3中的視頻播放器)。MVC新手:三聯包裝好/壞設計?

我正在創建播放列表(作爲視頻播放器的側邊欄)。播放列表是可滾動的,當您將鼠標懸停在項目上時,它會補間(展開)以顯示更多信息。沒什麼神奇的。

現在,將會有數十個播放列表項目。我想知道如何在這裏管理實際的M,V和C。

所以,我已經有了每個播放列表項的ItemModel,ItemView和ItemController的實例。當我想追加一個新項目到播放列表時,我應該手動實例化一個新的ItemModel,ItemView和ItemController,將它們全部鏈接起來,將它們放在他們需要去的地方,並[可選地]掛在它們的引用上?

我在想什麼是創建一個Item類,它只是MVC黑社會的簡單包裝。然後,任何客戶端與三元組的交互都必須由包裝器委託。在這種情況下,該項目「包裝」負責

  1. 實例化是MVC的
  2. 事件委託給視圖。

這是明智的嗎?可擴展?典型?它是反模式嗎?在一個包含更多對象的較大系統中,我可以看到自己採用了「MVCW」的範例(對於每個三元組,W是一個這樣的包裝器),所以4個類,形式爲XyzModel,XyzView,XyzController ,和Xyz(或XyzWrapper,或XyzObject,或其他)。

但是......這並不是我之前讀過的東西。我知道一個給定的模型可以有多個視圖,那麼它將如何發揮作用?

所有這一切的動機是,爲我需要的每個新「事物」手動創建3個新對象似乎有點愚蠢(特別是在客戶端交互非常少的情況下)。我懷疑這僅僅是我對MVC模式的一種錯誤認識,而且在糾正時,我不僅會理解爲什麼「包裝器」是一個壞主意,而且還會理解如何更好地管理實際對象黑社會。

也許,我的設計方法是完全錯誤的,這是我混亂的根源。

或者,也許這是一個特殊情況,其中是的,實際上每個清單項目製造3個實例的正確程序。

有什麼建議嗎?

+0

爲什麼要爲每個實體創建3個類?模型的實體,控制器和視圖完全不同的事物是否彼此交談? – Kos 2012-03-01 14:46:53

+0

每個條目不是三個類 - 每個實體有三個**實例**。一個模型,一個視圖和一個控制器。 – 2012-03-01 21:09:55

回答

0

原來,我對何時何地使用模型,視圖和控制器的理解有點有缺陷。例如,我最終只使用了ItemView和ItemModel - 全部由PlaylistController的單個實例處理。

看起來好像實例化一個完整的三元組(僅用於一個UI組件)可能不太可能 - 並且在它確實發生的情況下,則它更簡潔(和向前兼容)只需簡單地製造相關的物體即可。