大家一看到这张图,就像到了三层架构,为什么出现三层架构呢?可能他有他的道理,即它要完成的目的:满足"高内聚,低耦合",达到复用,易修改,易维护等.下边我们看一看它的相关理论知识.
三层架构(3-tier application)通常意义上的三层架构就是将整个业务应用划分为:表现层(UI),业务逻辑层(BLL),数据访问层(DAL)。其目的即为了满足“高内聚,低耦合”的思想。
一,三层简介:
表现层(UI):通俗讲就是给用户的界面,即用户在使用一个系统的时候他的所见所得。
业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添,删除,修改,查找等。
下边两张图可以给我们很好的启示:
二,各层的作用:
1,数据访问层:主要是针对原始数据的操作层,而不是指原始数据。具体为业务逻辑层或表示层提供数据服务。
2,业务逻辑层:主要是针对问题的操作,也可以理解为针对数据层的操作,对数据业务逻辑的处理。
3,表示层,主要表示WEB方式,也可以表示成WinForm方式,Web方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善的提供服务。
4,各层之间的数据走向:
5,三层之间与业务实体之间的关系:
三,使用三层的优缺点:
优点:
1,开发人员可以只关注结构中的其中某一层;
2,可以很容易的用新的实现来替换原有层次的实现;
3,可以降低层与层之间的依赖;
4,有利于标准化;
5,利于各层逻辑的复用;
6,结构更加的明确;
7,在后期维护的时候,极大的降低成本和维护时间。
缺点:
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了开发成本。
熟悉了三层的一些理论知识,我们来看一下以三层类似的MVC的相关知识,先来看一张关于MVC结构的图片:
MVC三层架构
MVC是 模型(Model),视图(View)和控制(Controller)的缩写,其目的实现Web系统的职能分工。其中Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现; View层用于与用户的交互,通常用JSP来实现; Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
MVC开始是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
最后我们看一下MVC的优点与缺点(其实跟三层架构的目的都相同):
优点:
耦合性低,重用性高,生命周期成本低,部署快,可维护性高,有利软件工程化管理等等。
缺点:
不适合小型,中等规模的应用程序,增加系统结构和实现的复杂性 ,视图与控制器间的过于紧密的连接,视图对模型数据的低效率访问,一般高级的界面工具或构造器不支持模式等等。
都叫为三层架构,到底他们有什么不一样呢?最后我们看一下两者之间的区别:
MVC(模型Model-视图View-控制器Controller)是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。
同样是架构级别的,相同的地方在于他们都有一个表现层,但是他们不同的地方在于其他的两个层。
在三层架构中没有定义Controller的概念。这是我认为最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。
他们相同的设计理念就是:把视图设计与数据持久化进行分离,从而降低耦合性,易于扩展,提高团队开发效率.
综上,为关于三层的一些相关知识,现有理论的指导,再加上实践的躬行,才能掌握的更好。等待下篇的实践博客……
分享到:
相关推荐
WELearn大学英语知识拓展:文化生活之旅——文化点滴.pdf
【标题】中的“基于单片机——液体点滴速度监控装置”揭示了这是一个使用单片机技术来设计和实现的医疗设备,主要用于监测病人的输液速率。这种装置在医院中非常常见,它能够确保液体以预设的速度稳定地流入病人体内...
在本项目中,"单片机毕业设计——液体点滴速度监控装置"是一个综合性的实践课题,旨在通过单片机技术实现对医疗输液过程的精确监控。这个设计涵盖了硬件搭建、软件编程、信号处理以及人机交互等多个方面的知识点,...
### 好东西PICC——C语言的点滴 #### 概述 本文主要探讨了在使用Microchip的C编译器(PICC)结合ICD2(In-Circuit Debugger)进行开发过程中的一些细节问题,特别是针对中断处理时的内存管理方面。通过对几个具体...
【小学生作文教案——入门篇】主要针对初学写作的小学生,旨在帮助他们克服对写作的恐惧,提升作文能力。教案的核心在于教授基本的描写方法,让孩子们能够抓住事物的主要特征,进而进行生动、具体的表达。 首先,...
《“使用与满足理论”视角下的移动短视频研究——以抖音App为例》这篇文章深入探讨了移动短视频,特别是抖音App如何在“使用与满足理论”的框架下满足用户的各种需求。使用与满足理论强调,人们使用媒介是为了满足...
Python从点滴开始——官网博客项目从0开始改造(一) Djang项目创建配置最简代码。创建Django项目,然后进行简配。在浏览器上登陆网站后台http://127.0.0.1:8000/admin可以进行登陆
### .NET平台网站架构调优实践点滴:关键知识点解析 #### 一、核心架构理念:资源可控性 在.NET平台的网站架构调优实践中,一个关键的理念是将系统的整体资源保持在可控状态。这意味着,通过合理的设计和规划,...
scanf函数是C语言中最常用的一个输入函数,也是C语言中最基本的操作,但其使用格式繁琐、多变,初学者不易掌握。根据以往的教学经验,总结出scanf函数的使用规则、使用中常遇到的问题及解决方法。 一、scanf函数的...
通过三层架构的设计,实现了代码的解耦和模块化,提高了系统的可维护性和扩展性。 总之,自动点滴管理系统是基于.NET 3.5框架和WCF技术的高效解决方案,它集成了C#和ASP.NET的优势,旨在提供安全、便捷的点滴服务...
独具匠心做复习,相信学生创奇迹——对中考历史第一轮复习的点滴思考和做法(共95张PPT).ppt
决策靠领导,发展靠头脑——读《明朝那些事儿》点滴感悟.pdf
本系统通过光电传感器检测液面高度和液体点滴速度,使用步进电机控制液体点滴速度,并实现了多机通信,即一个主机站控制多个从机站和主、从机之间的数据传输。 系统组成框图: 1. 测量模块:使用光电传感器检测...
"人生就像一场旅行——扁平化手绘素材精美ppt模板.rar"是一个专为创意表达和信息传达打造的资源包。扁平化设计近年来在UI设计、图形设计以及PPT设计领域广受欢迎,它以其简洁、清晰的视觉风格,深受用户喜爱。 首先...
本文将深入探讨一个电子设计项目——液体点滴速度监控装置,旨在提供一种自动化、高精度的监测解决方案。 一、设计背景与意义 在医院中,输液过程常常需要医护人员手动调整点滴速度,这不仅需要人力监督,还可能...
此外,书中还有一个特别的附录部分,名为“大学十年”,记录了作者十年大学生活的点滴,从中也可以看到作者的成长历程和个人价值观的形成。 #### 思想精髓 《软件工程思想》一书不仅仅是一本技术指南,更是一本...
标题中的“不想毕业——给大学生活留一份珍贵记忆ppt模板.rar”表明这是一份与大学毕业相关的PPT模板,旨在帮助即将毕业的大学生记录并展示他们的大学生活,为珍贵的校园回忆留下一个可视化的载体。这份PPT模板可能...