在MVC模式中,我看到了組成數據模型的類和驅動系統的這些類的實例之間的區別。我的團隊恭敬地不同意我的意見,我想澄清一下。模型對象是否應通過MVC模式中的視圖創建?
我有一個Employee
類,它是模型中唯一的類。控制器有一個類的實例,並且該實例驅動視圖。
我會打電話給控制器「模型」所擁有的Employee
類的一個實例,並且我會調用Employee
類的其他任何實例,但不驅動系統「不是模型」。
爲什麼我這樣做是因爲我的團隊認爲視圖不應該創建模型。我同意,但我認爲該視圖應該能夠創建Employee
類的實例傳遞給控制器。
例如,如果我在控制器中有一個方法setCoworker(employee : Employee)
,我認爲視圖創建一個Employee
的新實例並將其傳遞給控制器是完全可以的。
MVC模式最佳實踐指令是什麼?我不應該從視圖創建實例嗎?
我很欣賞你的看法。但是如果BuildANewModel()需要很多直接來自人類輸入(即視圖)的參數呢?我們可以將所有的參數傳遞給函數,但是這會變得很難管理,而且如果我們創建一個包含所有參數的單獨對象,我們基本上會重複已經存在於模型中的類。您怎麼看? – Samuel
這通常在控制器的界面中定義,無論是作爲參數還是作爲某種數據對象。就像我說的那樣,沒有人會爲了使用該數據對象的Model而打破僵局,但它不符合模式,這就是您的問題所在。 – Paul
我有點像控制器暴露的數據對象的想法。像'EmployeeCreationArgs'。如果視圖沒有或不應該關注的「員工」類的某些部分,這可能很有價值。感謝您的輸入:) – Samuel