`
bardo
  • 浏览: 378326 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
D1407912-ab64-3e76-ae37-b31aa4afa398
浅述PHP设计模式
浏览量:11807
9d6df9f7-91da-3787-a37c-0e826525dd5d
Zend Framewor...
浏览量:10116
85b628bd-a2ed-3de2-a4b1-0d34985ae8b6
PHP的IDE(集成开发环...
浏览量:9502
社区版块
存档分类
最新评论

MVC应当什么样子

阅读更多

        MVC应当什么样子?此问题好怪。是的。JAVA因为MVC不好,失去了大量的WEB市场。PHP至今也没有好的MVC模式。我们不知问题出在哪里。是因为,都是开源,所以没有好的架构师?是因为开源,不能照抄非开源的技术?无法回答。

        但我们可以回答MVC应当是什么样子。对于这一点,我想如果你是一个大型WEB的架构师,如果不能很好回答这个问题,那么,你的WEB最终均会遇到问题。

        这里,笔者只想把个人对MVC的认识与大家分享一下:

        说起MVC,大家都清楚,是模块,控制器,视图三部分。这三部分首先需要的是松耦合。其次,则是要符合IoC原则。

        对于控制器,必须要有Host, SumDomain, IP,URL,ACL的路由检测。由于现在一个网站,同时有浏览器与手机的,所以,还要有UserAgent检测。控制器要能做到最为方便地将一个请求映射到一个模块类的一个方法(事件)中。为什么要这样?只有这样,才能完全面向对象。也只有这样,所有的应用结构才会统一,代码的可读性,可扩展性,与程序员的无关性才能大大提高。

        以前有人说,MVC的目标是把页面与程序分开。实际远不只如此。因为,应用界面需求的变化是多样的。而程序的变化是相对稳定的。所以,把视图与模块分开是最为理智的做法。不过,无论JAVA还是PHP,视图技术均不到家。笔者认为,最好的视图模式,则是.net的视图模式,即完全面向部件。所以,无论struts,还是smarty均不是好的视图框架。并且害人不浅。打个比方,如果应用中某一快是一个列表。某一天,你需要在此列表中增加一个“更多”这样的链接。使用struts,还是smarty,你需要一一修改所有的模板。如果使用部件,则你的修改量则大大降低。

        同样,模块也是要分层的。我们不能把数据库操作直接放到模块中,也不能在模块中直接调用数据操作类。道理相当简单,因为,现在现有的技术,包括ORM,DDD,大家都很了解。ORM会让你少写大量的CRUD,而DDD,则会使你在业务逻辑层有大量的代码可以重用。也只有这样,才是真正的快速开发,才能真正提高可扩展性,可维护性,以及代码与程序员的无关性。

        这些原则说起来很简单,但是,只有遇到问题时,才会发现,未使用这些技术,不重视架构带来的疼痛!

0
0
分享到:
评论

相关推荐

    mvc 代码 mvc 代码

    **MVC(Model-View-Controller)模式**是软件工程中一种广泛采用的设计模式,尤其在Web开发领域,它能够有效地将应用程序的业务逻辑、数据处理和用户界面分离,提高代码的可维护性和可扩展性。 **模型(Model)**是...

    精通Spring MVC 4

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。Spring MVC4是当前zuixin的版本,在众多特性上有了进一步的提升。, 在精通Spring...

    MVC简单例子C#

    **MVC(Model-View-Controller)模式是软件开发中的一种设计模式,尤其在Web应用开发中被广泛应用。C#是Microsoft开发的一种面向对象的编程语言,它与.NET框架紧密结合,支持构建各种类型的应用,包括MVC应用。在这...

    asp.net MVC2转MVC3

    ASP.NET MVC是一个微软提供的开源框架,用于构建可测试和可维护的Web应用程序。这个框架采用模型-视图-控制器(MVC)模式,为开发者提供了更灵活的开发方式,相较于传统的ASP.NET Web Forms,它更加面向对象,更适合...

    ASP.NET MVC项目实例

    ASP.NET MVC作为微软官方的.NET平台下MVC解决方案,自诞生起就吸引了众多.NET平台开发人员的眼球。ASP.NET MVC从一开始的设计思路就与Struts不同,它的映射是利用路由配置而非xml,从而大大降低了开发复杂度,并且比...

    MVC解析及mvc的知识点

    对mvc内部的详细介绍,及很多知识点MVC框架是什么MVC如何工作 MVC的缺点

    ASP.NET MVC5

    ASP.NET MVC5是一个基于微软.NET Framework的开源web应用程序框架,专为构建动态、数据驱动的Web应用程序而设计。它结合了Model-View-Controller(MVC)设计模式、ASP.NET的功能性和HTML5的能力,提供了更高效、灵活...

    C# MVC入门实例 MVC留言本

    **C# MVC 入门实例:MVC留言本** C# MVC(Model-View-Controller)框架是微软为构建Web应用程序提供的一种强大的设计模式。它将应用逻辑、用户界面和数据处理分离开来,使代码更易于管理和维护。在这个入门实例中,...

    C++实现简单的MVC框架

    在IT行业中,MVC(Model-View-Controller)是一种广泛应用于软件开发的架构模式,尤其在Web应用领域中。这个模式将应用程序分为三个主要部分,每个部分都有明确的责任,从而提高了代码的可维护性和可扩展性。本项目...

    C# MVC 经典框架

    C# MVC(Model-View-Controller)经典框架是基于微软.NET平台的一种强大的Web应用程序开发模式。这个框架结合了MVC设计模式的灵活性和C#语言的强类型特性,为开发者提供了构建可维护、高性能和高度分层的Web应用的...

    经典MVC登录实例代码

    **MVC模式与Servlet、JSP的协同工作** 在Web应用开发中,Model-View-Controller(MVC)模式是一种广泛采用的设计模式,它将应用程序的业务逻辑、数据和用户界面分离,使得开发和维护更加方便。在这个"经典MVC登录...

    MVC2.0入门必读教程程序源码

    其实也没什么神秘的,就是一个普通的类而已。只不过需要继承FilterAttribute基类,Action拦截器还要实现IActionFilter接口,而Exception拦截器需要实现IExceptionFilter接口。拦截器主要在Controllers目录下的...

    QT-PureMVC-master.zip_QT_QT puremvc_mvc_pureMVC_qt MVC

    这是一个MVC例子,简单的接受了MVC的实现过程。

    基于ASP.NET MVC项目实例

    **ASP.NET MVC 框架详解** ASP.NET MVC(Model-View-Controller)是一种轻量级、基于组件的Web应用程序架构,它由微软开发并应用于.NET Framework中,为开发者提供了构建可测试、灵活且易于维护的Web应用的强大工具...

    Aspnet Mvc教程 5. 基本工作流程

    Aspnet Mvc教程 1.说明 01:06 Aspnet Mvc教程 2.准备工作 02:37 Aspnet Mvc教程 3. 建立并运行 02:46 Aspnet Mvc教程 4.默认程序结构 04:18 Aspnet Mvc教程 5. 基本工作流程 05:13 Aspnet Mvc教程 6.mvc理论讲解...

    MVC 微软范例源码

    MVC微软范例源码,MVC music项目源码

    MVC网上商城系统

    **MVC网上商城系统** 本项目是一个基于MVC(Model-View-Controller)架构的完整网上商城系统,旨在提供一个用户友好的前端购物体验以及功能完善的后台管理系统。它集成了商品展示、购物车、订单处理、用户管理等...

    asp.net mvc博客Blog源码

    ASP.NET MVC是一个强大的Web应用程序开发框架,由微软公司推出,用于构建可维护、高性能和具有优秀用户体验的Web应用。在本“asp.net mvc博客Blog源码”项目中,我们可以深入学习和理解ASP.NET MVC的核心概念和技术...

    Aspnet Mvc教程 11.重定向、Redirect

    Aspnet Mvc教程 1.说明 01:06 Aspnet Mvc教程 2.准备工作 02:37 Aspnet Mvc教程 3. 建立并运行 02:46 Aspnet Mvc教程 4.默认程序结构 04:18 Aspnet Mvc教程 5. 基本工作流程 05:13 Aspnet Mvc教程 6.mvc理论讲解...

Global site tag (gtag.js) - Google Analytics