2013-11-09 48 views
0

我總是發現有衝突的信息,沒有權威性,沒有足夠具體的解釋我和我兄弟正在爭論的確切問題。那麼有人可以把這個問題休息一下,並希望用一些權威類型的文檔?模型視圖控制器 - 誰做什麼?

簡而言之: MVC中的3個組件中的哪一個負責確定要顯示在屏幕上的對象的大小和位置?

+0

控制器執行此操作。查看在iTunes中爲iPhone和iPad開發iOS 7應用程序您,視頻1 ... Class物流,iOS,MVC,Objective-C概述Objective-C – DogCoffee

+0

您是指html元素大小? – LINQ2Vodka

+0

我指的是要顯示的圖像的大小,要顯示的按鈕或者在屏幕上看到的任何其他可見的人爲因素。 – CodeMonkey

回答

1

MVC的關鍵是試圖實現類之間的鬆散耦合。這是通過應用幾種模式完成的(MVC是一種複合模式,意味着它是其他幾種模式的組合)。

在這裏您可以找到「在視圖&控制器之間的策略」,「視圖上的複合」和「視圖/控制器之間的觀察器」。

有很多的這一切應該如何處理辯論,但總稱是這樣的:

事情發生在視圖 - >查看通知控制器

     -> Controller asks Model to change data 
         -> Controller asks View to update display 
         -> Model informs View state has changed 
         -> View pulls data from model 

^這是用拉被認爲是「更正確」的觀察者模式,但它確實是一條非規則的指導原則。牢記這一點,視圖負責視圖對象的位置(使用複合模式),而控制器只是一個插件,因此操作知道如何發送到模型。這允許在視圖&控制器之間輕鬆切換。 (這會產生雙向關聯性,但這是另一回事)

+0

我非常確定,讓模型與視圖進行交談是一個不容否認的問題。我不認爲它應該知道這個觀點的存在......但正如你所說,似乎有爭論,這就是我問的原因!雖然我沒有看到我的問題的確切答案。 – CodeMonkey

+0

對不起,但的確,有些人希望觀看/模特不知道彼此的存在,而其他人則是這樣。我一直都是通過讓他們知道彼此而學會的,然後在大學裏講師之間真的有不同的看法:) –