三层框架(原始版)

什么是三层

所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫业务逻辑层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机 器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即把这三个层放置到一台机器上。三层体系的应用程序将业务规则、数据 访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过中间层)(业务逻辑层)建立连接,再经由中间层与数据 库进行交互。
如下:
1.用户界面表示层(USL)
2.业务逻辑层(BLL)
3.数据访问层(DAL)
  图片说明

为什么要用三层:

我们用三层结构主要是使项目结
构更清楚,分工更明确,有利于后期的维护和升级。它未必会提升性能,因为当子程序模块未执行结束时,主程序模块只能处于等待状态。这说明将应用程序划分层
次,会带来其执行速度上的一些损失。但从团队开发效率角度上来讲却可以感受到大不相同的效果。
此种架构要在数据库设计上注意表之间的关系,尽力满足主与子的关系。在功能上对用户要有一定的限制,不要表现在对于子表的删除操作一定要慎重,以免造成主表与子表的数据在逻辑上出现的主表的外键在子表中没有相对应的值。
•    对于表的综合查询方法是:
先对主表查询,调用主表所对应的DL。再根据主表的记录分别对每一个子表进行查询。将自表的查询结果添加的主表后,形成一个大的查询集合。
对于表的操作(增删改):
此时只对主表进行操作,调用主表对应的DL中的操作方法。
RL层是逻辑判断层,主要是对页面上传入的数据进行逻辑判断。RL层之上就是UI

和传统层次比较:

各层的作用
1:数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.
2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
3:表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。

详细介绍三层:
表示层
位于最外层(最上层),最接近用户。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。
业务逻辑层
业 务逻辑层(Business Logic
Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统
所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler在《Patterns of
Enterprise Application
Architecture》一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱Eric
Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。
业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一
种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面
向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽

屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层
而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。
数据层
数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。
如图三层:

数据传递方向


优缺点说明
优点

1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
6、结构更加的明确
7、在后期维护的时候,极大地降低了维护成本和维护时间
缺点
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了开发成本。
•  如何建立一个三层体系结构解决方案

新建一个空白解决方案。然后:    
“添加”-“新建项目”-“其他项目”-“企业级模版项目”-“C#生成块”-“数据访问”(数据层,下简称DLL层)    
“添加”-“新建项目”-“其他项目”-“企业级模版项目”-“C#生成块”-“业务规则”(业务层,下简称Bll层)    
“添加”-“新建项目”-“其他项目”-“企业级模版项目”-“C#生成块”-“Web用户界面”(界面层,下简称UL层)
 “添加”-“新建项目”-“其他项目”-“企业级模版项目”-“C#生成块”-“封装类”(业务层,下简称Model)

   引用关系如图:

原文地址:http://www.fuzhukeji.com/NewsShow.aspx?Nid=58

三层源码下载及手把手辅导讲解请访问网
址:http://shop107208952.taobao.com/shop
/view_shop.htm?spm=686.1000925.0.0.Qe4l5J&mytmenu=mdianpu&utkn=g,ydxlri6mzyytsoby1407136945311&user_number_id=1074354962&scm=1028.1.1.20001

或者在线加qq联系:869011220   912791866

三层框架(原始版)

时间: 2024-08-13 04:58:19

三层框架(原始版)的相关文章

★★JSP+Struts+Mysql构建的MVC三层框架对一张数据表的CURD

项目实现流程 大体流程:搭建环境 à 开发后台 à 开发前台 建立工程(struts2CURD),拷贝jar包,建立struts.xml文件,搭建环境 建立数据库和数据源配置:dbcpconfig.properties 建立db.sql:里面全是数据库操作的一些语句 建立操作数据库的工具:*.util:DBCPUtil.java,用于加载数据源.getDataSource(); *.Domain:User.java 继承ActionSupport,实现Serializable接口. ????写好

.Net框架搭建之1、SQL Server EF MVC简单三层框架

.Net简单三层框架简介 简单三层框架,是.Net开发中最最基础的框架了,由 数据访问层.逻辑处理层.表示层组成.一般情况下,在项目中数据模型Model层也是单独一层,但是只是单纯的数据模型不算在业务层划分当中. 好了,框架搭建,如果不了解,可能会觉得难以下手,了解之后,自然知道怎么做,只是其中的步骤,比起单纯的功能开发,是要繁琐不少,下面我们来一步一步搭建属于自己的框架,这里只列出重要步骤,其他未提到的细节可自行摸索. 数据模型Model层创建 数据模型层,首先要创建数据库,再从数据库生成EF

web day13 JSTL标签库(c标签,自定义标签),MVC设计模式,JavaWeb经典三层框架

JSTL 1. jstl的概述 *apache的东西,依赖EL * 使用jstl需要导入jstl1.2.jar * 四大库: > core:核心库,重点 > fmt:格式化:日期.数字 > sql:过时 > xml:过时 2. 导入标签库 *jar包 * 在jsp页面中:<%@taglib prefix="前缀" uri="路径"%> ---------------------- core --> c标签! 1. out和s

EntityFramework实体框架和三层框架。

EntityFramework实体框架可以独立完成对数据库的增删查改,也可以和三层框架配合使用. 如果和三层框架配合使用的话,我们需要先搭建三层架构.三层创建完成后我们可以在 在Model层中添加EntityFramework的实体框架.这是Model层中会多出一个Model1.edmx文件并同时生成几个项目文件, 然后我们需要在Dal层写方法: public class Newsdal{ News.Model.News_WeekEntities db = new Model.News_Week

基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(1) - 依赖注入三层框架搭建

概述 本文章描述如何搭建 ASP.NET Core 2.0 WebAPI 依赖注入三层架构,为什么要加入依赖,并不是为了提供程序性能,而是为了项目间解耦,项目之间能够更加独立. 微软爸爸官方说明文档:在 ASP.NET Core 依赖注入 全面理解 ASP.NET Core 依赖注入 步骤 1. 新建解决方案,添加一个ASP.NET Core WebApi应用 2. 添加四个.Net Core类库:Entity.BLL.DAL.Common 3. 按照以下截图进行解决方案布局 4. 添加DAL层

springMVC设计模式和javaWeb三层框架

一.springMVC  设计模式 MVC模式是软件工程中的一种能够软件架构模式,把软件分为三个基本部分,模型(model).视图(view)和控制器(controller).使程序简化,更加直观. 控制器(controller):对请求进行处理,负责请求转发 视图(view):界面设计人员进行图形界面设计 模型(model):程序编写程序应用的功能.数据库管理 二.javaWeb三层框架 表述层:(WEB层).业务逻辑层(Business Logic),数据访问层(Data  Access)

【伪一周小结(没错我一周就做了这么点微小的工作)】HDOJ-1241 Oil Deposits 初次AC粗糙版对比代码框架重构版

2016 11月最后一周 这一周复习了一下目前大概了解的唯一算法--深度优先搜索算法(DFS).关于各种细节的处理还是极为不熟练,根据题意判断是否还原标记也无法轻松得出结论.不得不说,距离一个准ACMer我都有相当差距,这条路是否能行通也无从得知.明天就是新生赛了,GG的时候即将到来...但无论成功失败,我也不是抱着争些什么,证明自己之类的想法而在志愿的每一项都填上计算机还不调剂结果滑进二本的对吧(并且并不是很后悔),还是那句话,他强任他强,走好自己的路就好.菜鸟一思考,大佬就发笑,但若作为菜鸟

使用C#开发C/S框架高级版添加新项目实例

操作步骤: 1.新建一个项目CSFramework3.test,在CSFramework3.test项目下新建一个FormMan窗口(此时不需要继承). 2.按F7打开类,替换一下引用 using System;using System.Collections.Generic;using System.Windows.Forms;using CSFramework3.Interfaces;using CSFramework.Library;using CSFramework.Common; 此时

maven搭建ssm分模块框架 (myeclipse版) (二) 较详细版

由于第一篇用的是markdown编辑器写的,好像没有上传附件的功能,我就只有上传资源了 感觉新的编辑器有点坑 直接进入主题,我们现在来将ssm整合进去 由于用的是maven 管理,之前的ssmDemo项目 有一个parent父工程,那么我们可以考虑把所用的jar包都全部通过父工程来引入jar文件 这样一来 web service interface三个子工程 也会自动引入jar包 对于ssm框架的jar包 pom 相关信息 可以直接参考 http://blog.csdn.net/zhshulin