`
cui09
  • 浏览: 114071 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
最近访客 更多访客>>
社区版块
存档分类
最新评论

用MVC模型引导你的WEB设计思路

阅读更多

用MVC模型引导你的WEB设计思路                                 

 

习惯于过程式的开发,一直向往着面向对象。无奈半路出家人,没有一点内力基础,看了一大堆面向对象的书也只是看得一头雾水。对于MVC的概念也是偶然了解到的,感觉能和WEB开发结合起来让项目面向对象化。以下是我一点点心得。
先介绍一下MVC的概念:
MVC(Model-View-Controller),即把一个应用的输入、输出、处理流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
 模型(Model):就是业务流程/状态的处理以及业务规则的制定。即是MVC的主要核心。
 视图(View):代表用户交互界面,也就是Web的HTML界面。
 控制(Controller):可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。

以下以一个简单的留言板作为分析例子。

1)从上面的概念来看,留言板可以切成三部份。
 模型(M):包含 数据库链接、生成数据集、数据库更新操作。
 视图(V):包含 获取模型的数据集,将数据集内填充到各种显示界面内,如(留言板列表,管理控制页面,添加修改删除界面等一切用户看得到的页面。)
 控制(C):包含 数据库更新的数据校验,将更新完毕后的结果转交给视图进行呈现。

2)三部份已经出来,下面是更进一步的细化。
 模型(M)
  数据链接:数据链接参数、链接失败处理。
  数据操作:生成固定格式的数据集、运行单行SQL、解析固定格式的数据集更新数据库(内容包括有:留言记录,管理员帐号,系统设定)。
  文件操作:将文件内部格式封成数据集,并附带读取写入文件操作。(内容包括有:留言板样式设定、版权设定、搜索引擎关键字设定、留言板标题设定)
 视图(V)
    数据显示:根据要求授权给控制器[C]向模型[M]请求数据集,然后根据数据集显示出界面。
    操作结果显示:根据控制返回的数据资料决定显示的提示资料
    具体资料包括有:
      留言添加页:判断留言者是否管理员、判断本次留言是回复还是新建留言。
      留言管理页:批量删除留言、查询留言、管理员帐号管理、系统设定等。
      留言显示页:判断留言是否为管理员专用、判断本留言是否为管理员发布、是否允许回复、是否显示留言者的敏感资料、留言是否需要审核后再显示。

 控制(C)
  数据/文件操作:接收操作资料,校验数据是否符合条件,引用模型的生成数据集类生成指定数据集,然后交给相应的模型操作方法操作,并获取操作结果以预定好的格式转交给视图处理

3)系统基本上细化完毕,下一步就是将以上分析出来的东西封装成Class
  模型(M):
    数据库链接和数据操作可以封成一个Class。
    数据库数据集的结构,可以引用Dictionary控件与数组完成。其间操作也可以封成一个Class具体可以仿造ASP.net中Dataset对象的部份机构。
    文件操作部份封装成一个Class
    文件结构定义可以封成一个Class以方便控制直接引用,然后转交给文件操作Class进行相应的操作。
  视图(V):
    视图部可均是以文件模式出现,也可以将部份代码封装后引用。也可以引用现有的模板类实现代码分离等。
  控制(C):
    数据校验:SQL注入防御处理、日文字符替换处理、特定常用校验正则式,这个是控制器常用的函数,可以封成Class也可以以函数型式存在独立文件,使用时直接引用。
    数据/文件更新操作:由于直接操作,可以避免使用Class,而是以文件模式出现,每个文件处理模型(M)中的某个类。并完成控制(C)的工作。
    视图[V]模型[C]链接器:接收视图[V]要求数据集的请求,将请求转换成模型[M]合适的SQL句,然后交给模型[M]数据集成生器生成数据集,然后返回给视图[V],这个处理比较麻烦,如果没必要作得太严谨的话可以直接使用字段名,并在视图[V]以SQL标准的条件句进向模型[M]请求数据。

 疑:
  视图[V]模型[C]链接器,对这个的设定我还是有点迟疑的。因为在MVC中,V对M的请求中是不需要C的掺和的,但是,这个链接器的操作确实很符合C的概念,所以这里我把它放在了控制器[C]里。或许他可以放至在视图[V]内。毕竟这个是视图[V]的事。这个就看每个人对MVC的理解了。

以上基本完成了留言板的结构分析与类的抽象,有不少的地方比较繁琐,甚至是啰嗦,一个留言板其实是没必要这样,不过,这个例子里作出来的不少Class可以直接使用在其它更大的项目中去,比如控制器[C]中的数据集请求转换器,校验部份、模型[M]中的数据库链接等,之所以遵循MVC模型进行编程不但是为了让程序设计更灵活,最重要一点是可以很快将项目拆开成一小块一小块,然后又将这些小块再折成更小的块,一直折到单个类的某个方法某个属性,等你完成这些小块代码后,那系统也就完成了

分享到:
评论

相关推荐

    毕业论文设计思路1

    在毕业论文设计思路1中,我们使用Node.js来搭建一个MVC模式的后台,使用其模块来添加算法或者抓取得到的数据,并将其传输到前端。 Ajax 在将数据传输到前端时,我们使用了Ajax(Asynchronous JavaScript and XML)...

    jsp&mvcjsp+servlet+javaBean实现MVC

    MVC(Model-View-Controller)是一种常用的软件设计模式,用于将应用程序的业务逻辑、数据模型和用户界面分离。在Java Web开发中,可以使用JSP(Java Server Pages)、Servlet和JavaBean来实现MVC模式。下面是一个...

    《Java-Web应用开发基础》教学课件08课程设计实例.pptx

    而且,整个设计过程贯穿了MVC设计思路,是系统学习Java Web项目的入门案例之一。 《Java-Web应用开发基础》教学课件08课程设计实例全文共73页,当前为第6页。 8.3设 计 思 路 用户登录模块设计可划分为前台登录界面...

    EaglePHP:EaglePHP,是一种开源,高效,面向对象PHP MVC开发框架,完全基于PHP5可用于开发WEB程序和服务,借鉴国外优秀框架的设计思路,分层的设计思想使独立开发成为可能,建立模型推动代码的重用,有助于促进快速软件开发(RAD)和创建更稳定的程序,节约了开发者的时间,并减少了重复编写代码的工作

    EaglePHP:EaglePHP,是一种开源,高效,面向对象PHP MVC开发框架,完全基于PHP5可用于开发WEB程序和服务,借鉴国外优秀框架的设计思路,分层的设计思想使独立开发成为可能,建立模型推动代码的重用,有助于促进快速...

    基于Java-web停车场管理系统的设计与实现.docx

    基于Java-web停车场管理... 2.1.2构建本系统J2EE开发工具 Java虚拟机:JDK 1.7.0_79 java开发工具:Myeclipse web服务器:Tomcat 7.0 2.2 MVC介绍 MVC是一种软件设计典范,它最早存在于桌面程序中,它可以处理模型数

    一款性能优越的PHP MVC框架EaglePHP(V1.4)

    EaglePHP,是一款开源、高效、面向对象的PHP MVC开发框架,完全基于PHP5可用于开发WEB程序和服务,借鉴国外优秀框架的设计思路,分层的设计思想使独立开发成为可能,建立模型推动代码的重用,有助于促进快速软件开发...

    velocity-1.5.jar.zip( 359 k)

    Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由...Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。

    大型仪器共享管理系统设计分析.doc

    在技术实现方面,系统通过 Windows的 IIS 服务器提供 HTTP 协议的支持,利用 ASP.NET 提供 WEB 服务端的业务逻辑功能实现,ASP.NET 提供基于 WEB 的 MVC 框架,提供模型层的深度封装,可以将设备仪器、实验室、门禁...

    asp.net知识库

    Web2.0时代,RSS你会用了吗?(技术实现总结) 知识集锦:三分钟全面了解 Blog 和 RSS C#+ASP.NET开发基于Web的RSS阅读器 ASP.NET RSS Toolkit(RSS工具) Serialize Your Deck with Positron [XML Serialization, XSD, ...

    Rose在线情缘.zip

    Rose在线情缘网站项目在设计思路上采用 MVC 的设计模式---Model 模型层、View 视图层、Controller 控制层;在体系架构上选择用 SSM 架构。其网站文档包括项目立项文档,概要设计文档,需求分析文档,详细设计文档...

    基于python的人员信息管理系统的设计与实现毕业论文

    论文中,我详细解释了采用MVC(模型-视图-控制器)模式设计系统的思路,并具体阐述了Python在后端逻辑处理中的角色,包括处理请求、响应以及与MySQL数据库的交互等。同时,详细介绍了Django框架如何助力我们进行Web...

    EaglePHP v2.4【春节贺岁版】

    EaglePHP,是一款开源、高效、面向对象的PHP MVC开发框架,完全基于PHP5可用于开发WEB程序和服务,借鉴国外优秀框架的设计思路,分层的设计思想使独立开发成为可能,建立模型推动代码的重用,有助于促进快速软件开发...

    最全面的门户网站架构设计方案.doc

    3) 采用Oscache实现页面缓存,采用Memcached实现数据缓存 4) 采用独立的图片服务器集群来实现图片资源的存储及WEB请求 2.1.3 数据存储的设计思路 1) 数据库拆分,把生产数据库和查询数据库分离,对生产数据库采用RAC...

    EaglePHP开源框架&CMS;后台管理系统

    EaglePHP,是一款开源、高效、面向对象的PHP MVC开发框架,完全基于PHP5可用于开发WEB程序和服务,借鉴国外优秀框架的设计思路,分层的设计思想使独立开发成为可能,建立模型推动代码的重用,有助于促进快速软件开发...

    weixin059在线投稿系统+ssm(源码+部署说明+演示视频+源码介绍+lw).rar

    "lw"可能是指源码中附带的文档或者注释,用以解释代码的逻辑和设计思路,帮助开发者理解和使用该系统。 请注意,由于这是一份压缩资源,实际的内容和使用的技术可能会有所不同,具体的功能和技术细节需要解压后查看...

    weixin010微信阅读小程序+ssm(源码+部署说明+演示视频+源码介绍+lw).rar

    SpringMVC:作为Spring的一部分,它是一个模型-视图-控制器(MVC)框架,用于构建Web应用程序。 MyBatis:一个持久层框架,它简化了数据库操作,使得与数据库的交互更加直观和灵活。 Maven:一个项目管理工具,用于...

    EaglePHP框架1.9

    EaglePHP,是一款开源、高效、面向对象的PHP MVC开发框架,完全基于PHP5可用于开发WEB程序和服务,借鉴国外优秀框架的设计思路,分层的设计思想使独立开发成为可能,建立模型推动代码的重用,有助于促进快速软件开发...

    Java程序简历模板-适合Java程序员跳槽

    * 掌握权限的设计和实现,包括 RBAC 权限模型的应用 * 掌握授权和认证的实现思路 * 掌握数据加密和数字证书的应用,包括 MD5 加密和 OpenSSL 生成证书等 其他知识点 * 掌握 Java 项目优化方法和常见问题的解决方法...

    EaglePHP开源框架 v2.7.rar

    EaglePHP,是一款开源、高效、面向对象的PHP MVC开发框架,完全基于PHP5可用于开发WEB程序和服务,借鉴国外优秀框架的设计思路,分层的设计思想使独立开发成为可能,建立模型推动代码的重用,有助于促进快速软件开发...

    EaglePHP开源框架 v2.7.zip

    EaglePHP,是一款开源、高效、面向对象的PHP MVC开发框架,完全基于PHP5可用于开发WEB程序和服务,借鉴国外优秀框架的设计思路,分层的设计思想使独立开发成为可能,建立模型推动代码的重用,有助于促进快速软件开发...

Global site tag (gtag.js) - Google Analytics