在J2SE的学习阶段一直以为MVC中M指bean;V指swing,C指biz.呵呵, 并不了解为什么这样分. 也没有理解分开到底有什么好处.在今天仔细去体会的时候,发现之前的想法是一个极大的错误,至多算知道有这么一个概念而已.不过也不能保证现在理解的就是正确的,记得上次的面试中遇到一题:浅谈MVC.因为不明白到底怎么去谈.,所以就空了.现在想想真是...~.~!
在进入WEB阶段后有所改变,我现在的理解MVC是指(Model,View.Controller).其中model指.javaBean;view指jsp,html等显示元素.controller指servlet.
一.javaBean:这不只是一个简单的实体或一个对象.他可以指一种业务逻辑,比如,银行的转账----不管你是通过人手动转账还是计算机自动完成,这中间的过程是不变.例如,先看转账的两个用户是否存在,再看转账的余额和转账金额的关系等.具体的操作是通过biz和dao实现.这也解答了为什么称之为"模型层".因为完成转账这个事情(业务),在这一层只关心是什么样的流程而不关心是什么样的方式(人或计算机)完成,相当于所谓的"建模".
然后,另一个问题是为什么要分为biz和dao呢?biz字面可以理解为业务,dao当然都知道是数据访问层了.我理解的原因有两点.一是:人为的将他们分开,目的在于更进一步划分,让程序员也能更专心地做其中一部(数据和业务).两是:因为他们要面向的对象不同,biz面象的是界面,更多的是逻辑上的处理,再如银行转账,需要判断两个账户及金额的合法等,而且在这里需要处理的是两个对象(两个账户),也不可能同时完成对数据库的操作.但在dao中面象的是数据库,所能操作的也仅仅只是一个对象,这也决定了他不能进行逻辑上的判断,只能进行简单的数据操作.这些也似乎符合人类的思维习惯.
二.jsp,html等.这些是显示给用户看的,用户可以通过这些可视化的操作完成与计算机的交互;
三.servlet.WEB中利用servlet充当controller是因为他更方便操作java代码和前台显示(jsp是由servlet封装成)完成业务上的处理等.有了这一层的出现,让原本在jsp嵌入java代码才能完成的事务转移到model层,这也可以说让jsp和servlet各尽所长,让程序更容易读懂和维护.在这一层中, 不进行任何业务逻辑上的操作,只进行简单的转发操作,充当的是一个邮局的角色.
PS:这只是我现阶段的理解,可能在以后的深入学习中会发现有些地方理解的还不够或出现了偏差