对javaweb的学习已经有了小半年,最近在了解一些框架和分层的知识,网上搜到很多,比如说:数据持久层,业务逻辑层,表现层,DAO层,还有原来最基础的MVC这三层,感觉有点乱,自己总想把那些层网MVC里套,表现层,业务逻辑层还好对应着视图,控制器吧,其他的层不知怎么对应MVC,感觉不是很明确。后来看到有的帖子,才发现,三层架构和MVC好像有些关系但又不是一个东西。
首先还是简单的说下MVC,全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。
通常视图是依据模型数据创建的。
通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
然后什么是三层架构呢?
三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。 1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
有了这些层就可以实现层与层之间的隔离,每个层只能调用它的上一层,无法调用其它层,可以使代码逻辑更清楚,方便以后的维护。
当然还有各种XXOO需要理解。。。
DAO是封装了数据库操作的方法,负责与数据库打交道。
VO通常指View Object和Value Object。View Object是界面展现需要的对象,如:Struts的FormBean.
DTO是Data Transfer Object,数据 传输对象,负责在应用程序不同层次之间传输数据对象。
PO是Persistent Object,基本上就是实体。
BO是指Bussiness Object,业务对象。