[原]理解三层
首先三层就是三个层,生活中三层是司空见惯的,老板、经理、员工三层,生产商、业务员、销售商三层,又如,一棵植物,也有三层,根、茎和叶子、花,又有盘古开天地之说,盘古一把斧头劈过去,清的上升变成了天,浊的下降变成了地,处于清浊之间的就成了天地万物,我们的世界也可以分为三层,天、地、万物。
那为什么要分层呢?从万物的角度来说,是为了不混乱,更高效率的完成自己的任务。很多事务和事理都是分层的,世间的万物就是这么的神奇,但是让一切都这么的和谐,最和我们贴近的是我们人类自己,我们本身也是分层的,根据不同人的理解可以划分为不同的层,细细想来我们的身体构造也可以分为三层,外表一层,骨架一层,夹在这两层中间的就是我们平时看不到的各种大大小小的器官。学过计算机网络的一定都知道OSI/RM协议模型采用的是七层的分层体系结构,在百度框中输入“三层架构”来搜索图片可不只是设计软件才用分层哦,这样理解来,生活处处见分层了,嘿嘿。
最后说道我们在软件开发上,在软件开发上为什么分层,我也理解的不是很清楚,也许是为了软件更好的维护,开发人员更好的合理分配,从代码上说是为了“解耦”,最终还是效率吧。看过很多网上的资料说三层不一定三层,这一点我也是赞同的,要依具体情况来分层,更不要为了分层而分层,简单的可能我们就只有两层,复杂的项目可能有多层,还是灵活一点好吧。但最常用的还是三层架构了,下面做详细的分析。
三层架构(3-tier-application)整个业务的划分,变现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。区分层次的目的是为了“高内聚,低耦合”的思想。
UI表示层即(User Interface)的简称,就是界面。就是人体结构的外表。
BLL业务逻辑层( Business Logic Layer)针对具体的问题的操作,对数据库层的操作。是各个器官和流动的血液各行其职。
DAL数据访问层( Data Access Layer)对数据库数据的操作,针对数据的增、删、改、查。哦,就是摄入各种食物吧,姑且这样理解。(也许这种比喻不恰当。。。)
也许更高的境界是灵魂吧,软件也有灵魂,软件的灵魂和人的灵魂一样在于全心全意为人民服务。(我的理解)
三层的具体操作。
数据访问层(DAL):最简单的理解就是实现数据表的select 、Insert 、update、delecte操作。
业务逻辑层(BLL):主要负责对数据库层的操作,也就是把数据库的层操作进行组合。
表示层(UI):主要是对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。
三层的关系。
不难看出三层的关系是依赖关系(类与类的五种关系之一)。
具体理解图。
实现代码理解。
以上是对三层的初步理解,请多指教。
接下来说说MVC与三层。
三层与MVC没有区别。
说到三层与MVC的差别,从思想上讲也没什么差别了,也是我的初步认识,都是全心全意服务于高质量软件而诞生吧,所谓高质量软件就是可靠性、可维护性、安全性,也是为了提高开发效率,从长远的利益上来看待。
三层与MVC有区别。
我简单的理解就是三层是软件的架构,而MVC(MVC加入链接)是一种设计模式,具体的理解见:(摘自)http://blog.csdn.net/xiaoxian8023/article/details/6948154
① MVC是一种复合设计模式,而三层是一个软件架构。
软件架构是用接口来实现的,而设计模式则是一种设计思想、设计理念的升华,也可以算做一种解决方案。一个系统一般只有一个软件架构,而可以有多个设计模式,因为设计模式是可以复用的。
② 在三层架构中没有定义Controller的概念,而MVC中也没有将业务的逻辑访问看成两个层。当然了。在三层中也提到了Model,但是三层架构中Model(Entry)的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。
③三层结构模式又可归于部署模式,MVC可归于表示模式。
④三层架构划分为:View(UI)、BIZ(BLL)、ADO(DAL)、Entity(Model)、Controller。而MVC把 BIZ(BLL)、ADO(DAL)、Model(Entity) 统一称之为 模型(MODEL),得到:View、Controller、模型(MODEL) 三层。
对MVC和三层的初步理解就到这里,这只是一些理论,后续的文章,我会用一些实例来具体理解和说明。