想,作爲一個iPhone應用程序的一部分,我需要顯示用戶的某些部分對象的列表。在MVC,澄清對象的責任需要
模型
- 表示實際的對象要顯示
- 愚笨數據,吸氣劑的收集和setter
視圖
- 顯示該列表,通行證接收動作至控制器
- 表示層
的控制器
- 解釋從視圖接收動作和發生在數據動作
- 視圖和數據之間算符
在這幅圖中,將是控制者對人的責任ist模型到磁盤,還是它應該是Model邏輯的一部分?要求做到這一點將來自控制器,但是,如果控制器知道如何將數據保存到磁盤,或者數據是否知道如何將自己保存到磁盤?
想,作爲一個iPhone應用程序的一部分,我需要顯示用戶的某些部分對象的列表。在MVC,澄清對象的責任需要
模型
視圖
的控制器
在這幅圖中,將是控制者對人的責任ist模型到磁盤,還是它應該是Model邏輯的一部分?要求做到這一點將來自控制器,但是,如果控制器知道如何將數據保存到磁盤,或者數據是否知道如何將自己保存到磁盤?
這是不對的。
模型負責所有的業務邏輯。此外,型號不直接瞭解數據庫或任何其他數據存儲介質。當模型初始化時,它接收工廠創建的DAO或DataMapper,它們負責存儲和檢索信息。
控制器解釋從視圖中接收到的信息,並改變模型和視圖的狀態。
視圖通過觀察者模式(經典MVC)或模型(Model2 MVC)的請求數據從持久模型接收信息。
我可以看到這是怎麼回事兩種方式。我會認爲這種邏輯通過這種方式進入模型,控制器更清潔一些。此外,如果您使用的模型之間的此功能,它主要是一致的e.g $person->saveData()
,$user->saveData()
那麼你可以地延長了基礎模型,因此會被其他車型繼承和保存你重複的代碼。
如果將此邏輯併入模型中,將其設置爲足夠靈活以便控制器可以覆蓋持久數據可能是個好主意。因此,也許,將參數傳遞到模型功能$person->save(false)
這false
將防止模型持久化數據,但在默認情況下會true
。