想,作为一个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
。