使用mvc模式设计的web应用程序具有以下优点,除了?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用mvc模式设计的web应用程序具有以下优点,除了?相关的知识,希望对你有一定的参考价值。
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC只是将分管不同功能的逻辑代码进行了隔离,增强了可维护和可扩展性,增强代码复用性,因此可以减少代码重复。但是不保证减少代码量,多层次的调用模式还有可能增加代码量查看更多回答抢沙发du 参考技术A MVC只是将分管不同功能的逻辑代码进行了隔离,增强了可维护和可扩展性,增强代码复用性,因此可以减少代码重复。但是不保证减少代码量,多层次的调用模式还有可能增加代码量用于 MVC Web 应用程序的常见设计模式
【中文标题】用于 MVC Web 应用程序的常见设计模式【英文标题】:Common Design Patterns for use in MVC Web Applications 【发布时间】:2010-09-24 13:41:23 【问题描述】:我正在尝试指导一些人构建 Web 应用程序。他们了解并使用 MVC,但我对您在构建 Web 应用程序时使用的其他常见模式感兴趣。
那么,您发现哪些模式可以很好地融入到正确的 MVC 应用程序中。也许是异步进程、计划任务、处理电子邮件等。你希望你知道要寻找或避免什么?
这个问题并不重要,但我们的大多数应用程序都使用 ASP.NET 和 Rails。
【问题讨论】:
【参考方案1】:一旦您进入 MVC,就值得探索“四人帮”书之外的模式,并进入 Martin Fowler 的“Patterns of Enterprise Application Architecture”。
Registry 模式可用于使众所周知的对象在整个对象层次结构中可用。本质上是使用全局数据的替代品。
许多 MVC 框架还采用 Front Controller 和 Two-Step View 模式。
MVC 中的“模型”最好设计为Domain Model 模式,尽管某些框架(由Rails 领导)conflate 使用ActiveRecord 模式的模型。我经常advise认为Model和ActiveRecord之间的关系应该是HAS-A,而不是IS-A。
还可以在 Portland Pattern Repository wiki 上阅读 ModelViewController。关于 MVC、面向对象和其他补充 MVC 的模式有一些很好的讨论,例如 Observer。
【讨论】:
你有 ASP.NET MVC 中实现注册表模式的例子吗? @Ciwan,对不起,我从未接触过 ASP.NET。您可以尽可能轻松地在 Google 上搜索示例。【参考方案2】:这个问题太开放了,很难给出正确的答案。我可以告诉你,Observer 模式在 MVC(以及 Web 应用程序)中很重要,这将是一个很好的答案。关于所有存在的设计模式在大型 Web 应用程序中都很常见。您将需要使用一些 Factory 来构建复杂对象并访问某些部分需要一些 Facade。
如果您想要更多“提示”或良好实践而不是设计模式,我建议您使用 IoC 和使用好的 Framework 而不是从头开始。我可以建议您解释一下拥有一个良好的 ORM 引擎的好处,以更快地推动您的持久层(通常也可以来自框架)。
【讨论】:
【参考方案3】:不要从在您的开发方法中使用何种模式的角度来看待它,而应更多地从如何逐个问题地应用模式来看待它。为项目制定的架构决策与其他人的经验所决定的一样,提供了使用何种模式的指示。
也就是说,我发现我是 Provider 模型的粉丝,因为它可以通过多种选择来完成单个任务,并且添加了易于部署的功能。此外,工作单元模式非常适合设置事务边界。不过,在很大程度上,架构和业务需求决定了任何给定代码更改或新开发所采用的方法。
尽管我很喜欢图案,但我总是害怕看到它们被过度使用。我个人见过有人使用它们只是为了使用它们,这实际上使代码更难维护,并且比应有的更紧密耦合。此外,最好了解模式论点的双方。一个好的模式知识也应该通过anti-pattern 知识(通常被认为是一种模式,本身)来完善。
【讨论】:
【参考方案4】:我很可能也会推荐某种依赖注入(控制反转)。可能是要使用的最重要的补充“模式”。
【讨论】:
以上是关于使用mvc模式设计的web应用程序具有以下优点,除了?的主要内容,如果未能解决你的问题,请参考以下文章