【J2EE】:MVC是框架?是设计模式?是架构?还是……

上篇博客简单聊了聊MVC模式,但是有一个很重要的问题我没有提到,那就是对MVC的定位,它是什么?


很多人都知道MVC,都知道就是把将数据和显示分离,知道Model—View—Controller,但是让你说MVC是什么东西,你可能不知如何回答。那么MVC到底是什么玩意呢?框架?设计模式?架构?都不是。


可以肯定的说(个人认为),MVC不是框架,不是设计模式,更不是架构,它仅仅是一种架构模式。它不描述系统架构,也不指定使用什么技术,仅仅是描述系统架构的一种模式,类似于AOP、IOC、ORM等等,具体的框架技术则是基于这些模式的一些实现而已,比如基于MVC模式的框架有著名的Struts、Spring MVC、JSF、Tapestry以及比较老的WebWork等等,基于ORM模式的框架有Hibernate、MyBatis、iBatis以及.NET比较有名的Entity Framework等等。


        我画了一张图来描述这几个概念之间的关系,主要是描述包含关系,个人理解而已:
 

设计模式(Design pattern:是一套被反复使用、多数人知道的、经过分类编目的、代码设计经验的总结。从定义上看,它涉及到了代码级别,侧重于解决实际的现实的问题。比如我们应该如何为不同的商品设计折扣的方式,采用策略模式呗。


框架(Framework):是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。从定义看,它涉及到了一堆构件,以及这些构件之间的依赖关系、责任分配和流程控制等,说白了就是一堆类而已。这些类以及之间的关系构成了框架。比如想要让用户通过Servlet来访问页面,怎么办?用Struts呗。


架构模式(架构风格):一个架构模式描述软件系统里的基本的结构组织或纲要。架构模式提供一些呈先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南。从定义上来看,它是在指导我们如何组织代码,是一种具有指导意义的思想,比如要解决系统的数据与显示分离的问题,那就使用MVC模式呗。


软件架构(software architecture):是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。 软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。比如,我们要开发一个在线测评系统,使用什么架构呢?轻量级的SSH还是重量级的EJB?自己决定吧。


小结一下:


其实吧,软件这个行业的很多名词都没有特别准确的定义,好多概念是十分抽象和难理解的。但是回过头来看,我们不是做理论研究的,只要我们能够在问题的出现的场景中,使用最为合适的技术去解决它,就可以了。软件这行,纸上谈兵绝对是不行的,能为企业和公司解决实际问题,带来经济效益,促进信息技术转化为生产力,实现中国梦,乃我们最终的夙愿。
  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式的好处在于可以重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式提供了一个标准的术语系统,且具体到特定的情景。合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案。根据参考书《Design Patterns - Elements of Reusable Object-Oriented Software》中所提到的,总共有23种设计模式,可以分为三大类:创建型模式、结构型模式和行为型模式。其中,创建型模式关注对象的创建过程,结构型模式关注对象的组合,行为型模式关注对象之间的通信和交互。常见的设计模式包括但不限于: 1.创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2.结构型模式:适配器模式、桥接模式、装饰器模式、组合模式、外观模式、享元模式、代理模式。 3.行为型模式:责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。 另外,还有一类设计模式J2EE设计模式,主要用于解决企业级应用程序开发中的问题。常见的J2EE设计模式包括但不限于:MVC模式、业务代表模式、组合实体模式、数据访问对象模式、前端控制器模式、拦截过滤器模式等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值