我发现什么是mvp和mvc,有什么区别,但它并没有真正回答这个问题.
我最近开始使用MVC,因为它是我和我的工作伙伴将要使用的框架的一部分.我们之所以选择它是因为它看起来很容易并且从显示中分离出来的过程,除此之外还有我们不知道的优点,可能会错过吗?
优点
显示和处理是分开的
缺点
到目前为止没有
Sören Kuklau.. 46
MVC是m odel,v iew和c ontroller 的分离- 仅此而已.这只是一种范式; 在设计课程时,你应该有一个理想的想法.避免将这三个类别的代码混合到一个类中.
例如,虽然表格网格视图显然应该显示一次数据,但它不应该有从哪里检索数据的代码,或者它的本机结构(模型)是什么样的代码.同样,虽然它可能具有总结列的功能,但实际求和应该在控制器中发生.
"保存文件"对话框(视图)最终将路径(一旦被用户挑选)传递给控制器,控制器然后向模型询问数据,并进行实际保存.
这种责任分离可以提高灵活性.例如,因为视图不关心底层模型,所以支持多种文件格式更容易:只需为每个格式添加一个模型子类.
MVC是m odel,v iew和c ontroller 的分离- 仅此而已.这只是一种范式; 在设计课程时,你应该有一个理想的想法.避免将这三个类别的代码混合到一个类中.
例如,虽然表格网格视图显然应该显示一次数据,但它不应该有从哪里检索数据的代码,或者它的本机结构(模型)是什么样的代码.同样,虽然它可能具有总结列的功能,但实际求和应该在控制器中发生.
"保存文件"对话框(视图)最终将路径(一旦被用户挑选)传递给控制器,控制器然后向模型询问数据,并进行实际保存.
这种责任分离可以提高灵活性.例如,因为视图不关心底层模型,所以支持多种文件格式更容易:只需为每个格式添加一个模型子类.
关注点分离是最重要的.
能够将这些组件分开,使代码更易于重复使用和独立测试.如果您实际上并不知道MVC是什么,请小心尝试理解人们的意见,因为仍然存在一些关于"模型"是什么的争论(无论是业务对象/ DataSets/DataTables还是它代表底层服务)层).
我已经看到各种各样的实现称自己为MVC但不完全正如Jeff的文章中的评论显示MVC是一个有争议的观点,我不认为开发人员会完全同意.
所有不同类型的MVC的一个很好的一轮上涨可点击这里.
Jeff有一篇关于它的帖子,否则我在Apple的网站上找到了一些有用的文档,在Cocoa教程中(例如这个).