我已经阅读了这里的一些问题和有关MVC的各种文章,可以看出它甚至可以应用于像绘画应用程序这样的GUI事件密集型应用程序。
有人能举出MVC可能不好的情况,并且其使用是不明智的吗?
编辑:我特别是在谈论GUI应用程序!
我已经阅读了这里的一些问题和有关MVC的各种文章,可以看出它甚至可以应用于像绘画应用程序这样的GUI事件密集型应用程序。
有人能举出MVC可能不好的情况,并且其使用是不明智的吗?
编辑:我特别是在谈论GUI应用程序!
我在我的网络内核驱动程序中尝试了MVC。然而,这个补丁被拒绝了。
我认为你可能有些颠倒了。重点不是看你在哪里可以应用MVC这样的模式,而是学习这些模式并识别出当你要解决的问题可以自然地通过应用该模式来解决时。因此,如果您的问题空间可以自然地分成模型、视图和控制器,则它是MVC的一个很好的候选。如果您不能轻松地看出您的设计的哪些部分属于这三个类别,则可能不是适当的模式。
例如,对于制作CMS,MVC是无用的。您没有任何模型,也没有控制器,只有带有装饰和菜单的文本页面。问题不再是处理数据-现在问题是正确地提供该文本内容。
尽管如此,CMS管理部分可以很好地建立在MVC之上,只是用户部分不行。
对于Web服务,最好使用REST,我认为这是一种独特的范例。
WebDAV应用程序也不会从MVC中受益很大。
Ruby在Web编程方面的限制是Rails更适合构建Web应用程序。我见过很多项目试图使用Rails创建WebDAV服务器或内容管理系统CMS,但都失败了。虽然你可以在Rails中创建CMS,但有更有效率的技术可以完成这项任务,比如Drupal和Django。事实上,如果你正在考虑Java门户开发,应该考虑使用Drupal和Django来完成任务。
如果你想要引入第三方组件,那么在MVC模式下工作会变得困难。一个很好的例子是CMS。
每个组件都有它们自己的控制器对象,你将无法共享模型到用户界面的控制。
我并不确定MVC在GUI应用程序中真的是一个坏主意。但是有一些替代方案可以说是更好的(也可以说是更糟糕的,这取决于你问的人的意见)。最常见的是MVP。请参阅此处的解释:Everything You Wanted To Know About MVC and MVP But Were Afraid To Ask。
虽然我认为如果您正在使用未考虑MVC的软件框架或其他交互式软件,则使用MVC可能是一个坏主意。
换句话说,这很像比较编程语言。通常没有多少任务可以说哪个更好。这通常归结为程序员的偏好、库的可用性和团队的经验。
什么时候是不好的呢?当有另一种代码结构更适合您的项目时。
有无数的项目,MVC并不适用,但我不认为列出它们会有任何好处。
如果MVC适用,请使用它;如果不适用,请使用其他东西。
MVC和ORM都是笑话……只有在你的应用程序不是数据库应用程序时,或者当你想保持应用程序数据库无关性时才适用。如果你正在使用支持存储过程的RDBMS,那么这是唯一的方法。存储过程是经验丰富的应用程序开发人员首选的方法。MVC和ORM只是被试图销售与这些技术相关的产品或服务的公司所推广(例如微软试图销售VS)。停止浪费时间学习Java和C#,而是专注于真正重要的Javascript和SQL。