5.3 三层结构的设计与实现
2011年软考系统架构设计师知识要点第五章

5.1.1 软件架构设计与生命周期1、需求分析阶段需求和 SA设计面临的是不同的对象:一个是问题空间;另一个是解空间。
保持二者的可跟踪性和转换。
2、设计阶段1.传统的设计概念只包括构件,随着研究的深入,构件间的互联机制逐渐独立出来,成为与构件同等级别的实体,称为连接子。
2.体系结构描述语言(Architecture Description Language ADL)对连接子的重视成为区分 ADL和其他建模语言的重要特征之一。
3.不同的视角得到多个视图,组织起来以描述整体的SA模型;不同侧面的视图反映所关注的系统的特定方面,体现了关注点分离的思想。
3、实现阶段团队的结构应该和体系结构模型有一定的对应关系,提高软件开发效率和质量。
分析和记录不同版本构件和连接子之间的演化。
填补高层 SA模型和底层实现之间的鸿沟,典型的方法如下:1.引入实现阶段的概念。
2.SA模型逐步精化。
3.封装底层称为较大粒度构件。
4、构件组装阶段可复用构件组装可以在较高层次上实现系统,研究内容包括:1.如何互联。
2.如何检测并消除体系结构失配问题。
中间件跨平台交互。
产品化的中间件更好地保证最终系统的质量,中间件导向的体系结构风格。
失配是指复用过程中,待复用构件对最终系统的体系结构和环境的架设(Assumption)与实际状况下不同而导致的冲突。
5、部署阶段软件构件的互联性、硬件的拓扑结构、硬件资源占用。
6、后开发阶段实现中的软件往往具有动态性,一类是软件内部执行所导致的体系结构改变,另一类变化是软件系统外部的请求对软件进行的重配置。
升级或进行其他修改时不能停机。
SA重建是指从已实现的系统中获取体系结构的过程。
5.2 基于架构的软件开发方法5.2.1 体系结构的设计方法概述基于体系结构的软件设计(Architecture-Based Software Design ABSD)方法。
体系结构驱动,指构成体系结构的商业、质量、功能需求的组合驱动。
性能化设计在某超高层结构设计中的应用

建筑科技95性能化设计在某超高层结构设计中的应用张青峰,鲁 阳(合肥工业大学设计院(集团)有限公司,安徽 合肥 230009)摘要:某高层建筑建筑高度241.5m,采用钢管混凝土框架-钢筋混凝土核心筒混合结构体系,经过试算分析,不设置加强层结构刚度能满足国家规范相关要求。
结合现行规范和规程,介绍了性能化设计在超限高层建筑结构中的应用,设定了抗震性能目标,进行了多遇地震、设防地震和罕遇地震作用下结构的弹性及弹塑性分析,找到了结构的关键部位并采取可靠措施予以加强,为此类似结构设计提供借鉴。
关键词:超高层结构;抗震性能目标;桁架转换本项目用于酒店、办公,地下3层,地上55层,建筑高度241.50m,主楼轴线平面尺寸为 45.0mx36.6m,平面基本柱网尺寸为 9.0m×图1 A 塔建筑剖面图本工程主体结构设计使用年限为50年,建筑结构安全等级为二级,重要性系数 1.0。
本工程抗震设防类别为重点设防类(乙类),地基基础设计等级为甲级。
抗震设防烈度为7度,设计基本地震动加速度为0.10g,设计地震分组为第一组,场地土类别为Ⅱ类。
钢管混凝土框架为一级、钢筋混凝土核心筒为特一级,41层转换结构构件、支承构件及其上下各一层竖向构件、竖向收进上下各一层的剪力墙均为特一级。
1 结构体系 1.1 结构选型本工程属于超B 级高层建筑,采用钢管混凝土框架+钢筋混凝土核心筒混合结构体系,框架由钢管混凝土柱、H 形或箱型截面钢梁及组合楼板组成。
地下室顶板无大开洞,顶板楼盖设计符合《高层建筑混凝土结构技术规程》(JGJ 3-2010)[1]3.6.3条,地下一层与相邻上层的侧向刚度比符合高规5.3.7条要求,计算嵌固端确定为地下室顶板。
计算时通过比对分析,发现在不设置加强层的情况下,结构刚度满足高规相关要求,最终确定不设置加强层的结构方案。
1.2 楼盖体系 塔楼核心筒采用钢筋混凝土楼板,核心筒外围楼板采用钢筋桁架楼承板组合楼板[2],转换桁架上下两层的楼板厚为150mm,地下室顶板板厚180mm,其余楼层的楼板厚度均为100mm。
基于三层结构的实验室管理系统的设计与实现

1 前 言
随着高等学校招生规模 的不断扩大 , 传统的实验室管理模式已经不能满足当前实验室教学管 理的需求 。 高校肩负着教学和科研的重任 , 为了实现素质教育, 培养具有创新精神和实践能力的人 才, 增强学生的动手能力 , 高校实验室纷纷购置了大量的计算机。 如何合理、 规范、 科学地管理实验 室, 充分发挥实验室的作用 , 在维护管理好仪器设备的前提下满足师生的实践需求和科研需要成 为了一个亟待解决的问题。
作者简介: 捷(9 1)男, 方 18一 , 福建福 清人 , 实验师, 士, 助理 硕 主要研究方向: 计算机应 用 术。 技
第 5期
方
捷: 基于三层结构 的实验室管理系统 的设计与实现
6 1
23 教 学管理模 块 -
该模块为实验室管理系统的核心模块。教师根据教学大纲的要求制订教学计划 , 将实验指导 书等电子资源上传至网络 。学生可以下载相关的实验资料进行学习。教师通过该模块可以批改学 生的实验报告 , 录人实验成绩。该模块能够显示哪些设备或仪器是否被使用 , 方便学生根据需要进 行选择。教师还可以方便的记录设备 、 仪器 的使用情况和学生的考勤情况。
2 1 年第 5 00 期 总第 1 1 0 期
《 福建师范大学福清分校学报》 J U N LO U IG B A C FF J N N R A N R rY O R A FF Q N R N H O UI 1 实验 室 管理 系统 的功 能 模 块 架 构 图
24 实验 室 基 本 信 息 管 理 模 块 .
实 验管 理员 负责 发 布公 告 , 括实 验 室管 理条 例 、 知 、 包 通 实验 室 的课 程 安 排表 , 记 实 验 室人 登
员的考勤情况 , 管理教师、 学生的交流平 台和系统的中的多媒体信息。 25 实验 室人 员管理模 块 . 实验人员管理模块主要介绍各实验室管理人员 的基本情况, 包括姓名 、 性别 、 出生年月 、 职称 、 专业 、 学历 、 学位、 所在的实验室名称等, 可供教师或学生浏览或查询。实验管理员负责实验室人员 的考勤 登记 , 记录详 细 的交接 班手续 。
刚度比控制

刚度比的控制 A 控制意义:新规范要求结构各层之间的刚度比,并根据刚度比对地震力进行放大。
新规范对结构的层刚度有明确的要求,在判断楼层是否为薄弱层、地下室是否能作为嵌固端、转换层刚度是否满足要求等等,都要求有层刚度作为依据,直观的来说,层刚度比的概念用来体现结构整体的上下匀称度. B 规范条文:新抗震规范附录E2.1规定,筒体结构转换层上下层的侧向刚度比不宜大于2。
新高规的4.4.3条规定,抗震设计的高层建筑结构,其楼层侧向刚度不宜小于相临上部楼层侧向刚度的70%或其上相临三层侧向刚度平均值的80%。
新高规的5.3.7条规定,高层建筑结构计算中,当地下室的顶板作为上部结构嵌固端时,地下室结构的楼层侧向刚度不应小于相邻上部结构楼层侧向刚度的2倍。
新高规的10.2.6条规定,底部大空间剪力墙结构,转换层上部结构与下部结构的侧向刚度,应符合高规附录D的规定。
E.0.1底部大空间为一层的部分框支剪力墙结构,可近似采用转换层上、下层结构等效刚度比γ表示转换层上、下层结构刚度的变化,非抗震设计时γ不应大于3,抗震设计时不应大于2。
E.0.2底部为2~5层大空间的部分框支剪力墙结构,其转换层下部框加-剪力墙结构的等效侧向刚度与相同或相近高度的上部剪力墙结构的等效侧向刚度比γe宜接近1,非抗震设计时不应大于2,抗震设计时不应大于1.3。
C 计算方法及程序实现:>>楼层剪切刚度>>单层加单位力的楼层剪弯刚度>>楼层平均剪力与平均层间位移比值的层刚度只要计算地震作用,一般应选择第 3 种层刚度算法不计算地震作用,对于多层结构可以选择剪切层刚度算法,高层结构可以选择剪弯层刚度不计算地震作用,对于有斜支撑的钢结构可以选择剪弯层刚度算法D 注意事项: 转换层结构按照“高规”要求计算转换层上下几层的层刚度比,一般取转换层上下等高的层数计算。
层刚度作为该层是否为薄弱层的重要指标之一,对结构的薄弱层,规范要求其地震剪力放大1.15,这里程序将由用户自行控制。
三层结构数据库在物流管理信息系统设计中的应用与实现

}
)
参 照此 方法 定义 出其 他 的实 体对 象类 , 即完成 了物 流解 决方 案 的实 体对 象类 项 目。 ( )数据 访 问层 (A )项 目的设计 与实 现 二 DL 数 据访 问层 项 目是 一个类 库 项 目, 主要 功 能是 访 问数 据库 , 其 对数 据 表进 行增 删读 改 的操 作 , 并接 受业 务逻 辑层 (L ) B L 的调用 ,
a cu t ae vr hr ( 0 co nN m a ca 2 ) n t n l r m r e , o u 1 p i a y k y a cu t a so dvr h r (0 n tn l , c0 nP sw r a ca 3) o u 1
e mpi i n t ul fo ei n e r fe e e e pl ye s d nt o n 1 r g k y e r nc s m o e
(m i ) ep d , a c u t o ev r h r ( 0 c o n R l a c a 3 ) n tn l e a l ( p b i ’ o u 1d f u t ’ u l c ) )
g o
( om n ) C m ad ,执 行语 句 ,处 理并 返 回结 果 、关 闭数据库 连接 等 的 方法 和 代码 都是 相 同或 相似 的 ,所不 同的是对 不 同数据 表 的访 问
东北石油大学本科生毕业设计论文1...

摘要越来越多的网络用户希望能够在网络平台上更多地展现自己的个性,更方便地与他人进行互动交流,拥有一个自己的独立的空间。
随着Web时代的到来,一个新的概念出现了——博客。
本次毕业设计所开发的博客系统包括两大功能:为前台用户提供的浏览功能和为博主提供的管理功能。
浏览功能是指前台用户可以根据分类和日期信息检索日志,已经注册的用户还可以对日志进行评论;而博主拥有对博客网站的后台管理功能,主要包括发表日志、修改日志、删除日志,管理日志分类,管理评论,密码管理、用户管理等功能。
本网站基于B/S模式,采用完全面向对象的思想设计。
在Visual Studio 2005集成开发环境下结合C#语言和技术开发,后台数据库使用SQL Server 2000。
关键字:博客;;SQL Server 2000;Visual Studio 2005AbstractMore and more network users hope to show their characteristics on web platforms and interact with other people more conveniently and have an independent space. From the beginning of Web, a new concept of blog emerged.The blog system completed during the graduation design consists of two function modules: information browsing provided for the users of onstage, and information management function for bloggers. The information browsing function refers to the searching function according to category and date of articles, registered users can comment on articles. To bloggers have the management function on the blog website background, mainly including publishing articles, articles management, articles classification management, reviews management, password management, user management etc.This website system is based on the model of B/S. It is developed in the environment of Visual Studio 2005 with the technology of and C# programming language, using object-oriented ideas, the database of background is SQL Server 2000.Key words:Blog; ; SQL Server 2000; Visual Studio 2005目录第1章概述 (1)1.1 系统开发的背景 (1)1.2 课题研究的意义及设计目标 (2)第2章博客系统开发相关技术 (4)2.1 介绍 (4)2.2 数据库的介绍 (4)2.3 三层结构. (5)2.4 IIS简介 (6)第3章博客系统需求分析 (8)3.1 系统的可行性研究 (8)3.2 系统需求分析 (9)3.3 总体流程分析 (10)3.4 系统详细流程分析 (10)第4章博客系统总体设计 (12)4.1 数据库设计 (12)4.2 功能模块设计 (16)第5章博客系统详细设计 (19)5.1 开发环境部署 (19)5.2连接数据库 (20)5.3 页面样式设计与实现 (21)5.4 系统前台功能详细设计 (22)5.5系统后台功能详细设计 (26)5.6数据分页 (29)第6章系统测试 (31)6.1测试方法 (32)6.2测试过程 (32)结论 (34)参考文献 (35)致谢 (36)第1章概述1.1 系统开发的背景“博客”(Blog或Weblog)一词源于“Web Log(网络日志)”的缩写,是一种十分简易的傻瓜化个人信息发布方式。
(完整版)《软件设计与体系结构》教学大纲-2014-2月版

《软件设计与体系结构》教学大纲一、课程基本信息二、课程目的和任务软件体系结构是根植于软件工程发展起来的一门新兴学科,目前已经成为软件工程研究和实践的主要领域。
专门和广泛地研究软件体系结构是从20世纪90年代才开始的,1993-1995年之间,卡耐基梅隆大学的Mary Shaw与David Garlan,贝尔实验室的Perry,南加州大学的Barry Boehm,斯坦福大学的David Luckham等人开始将注意力投向软件体系结构的研究和学科建设。
三、本课程与其它课程的关系。
体系结构在软件开发中为不同的人员提供了共同交流的语言,体现并尝试了系统早期的设计决策,并作为系统设计的抽象,为实现框架和构件的共享和重用、基于体系结构的软件开发提供了有力的支持。
鉴于体系结构的重要性,Dewayne Perry将软件体系结构视为软件开发中第一类重要的设计对象,Barry Boehm也明确指出:“在没有设计出体系结构及其规则时,整个项目不能继续下去,而且体系结构应该看做是软件开发中可交付的中间产品”。
四、教学内容、重点、教学进度、学时分配第一章软件体系结构概论1.1 从软件危机谈起1.1.1 软件危机的表现1.1.2 软件危机的原因1.1.3 如何克服软件危机1.2 构件与软件重用1.2.1 构件模型及实现1.2.2构件获取1.2.3 构件管理1.2.4构件重用1.2.5 软件重用实例1.3 软件体系结构的兴起和发展1.3.1 软件体系结构的定义1.3.2 软件体系结构的意义1.3.3 软件体系结构的发展史1.4 软件体系结构的应用现状第二章软件体系结构建模2.1 软件体系结构建模概述2.2 "4+1"视图模型2.2.1 逻辑视图2.2.2 开发视图2.2.3 进程视图2.2.4 物理视图2.2.5 场景2.3 软件体系结构的核心模型2.4 软件体系结构的生命周期模型2.5 软件体系结构抽象模型2.5.1 构件2.5.2 连接件2.5.3 软件体系结构2.5.4 软件体系结构关系2.5.5 软件体系结构范式第三章软件体系结构风格3.1 软件体系结构风格概述3.2 经典软件体系结构风格3.2.1 管道和过滤器3.2.2 数据抽象和面向对象组织3.2.3 基于事件的隐式调用3.2.4 分层系统3.2.5 仓库系统及知识库3.2.6 C2风格3.3 客户朋艮务器风格3.4 三层C/S结构风格3.4.1 三层C/S结构的概念3.4.2 三层C/S结构应用实例3.4.3 三层C/S结构的优点3.5 浏览器朋艮务器风格3.6 公共对象请求代理体系结构3.7 正交软件体系结构3.7.1 正交软件体系结构的概念3.7.2 正交软件体系结构的实例3.7.3 正交软件体系结构的优点3.8 基于层次消息总线的体系结构风格3.8.1 构件模型3.8.2 构件接口3.8.3 消息总线3.8.4 构件静态结构3.8.5 构件动态行为3.8.6 运行时刻的系统演化3.9 异构结构风格3.9.1 为什么要使用异构结构3.9.2 异构结构的实例3.9.3 异构组合匹配问题3.10 连系统构成的系统及其体系结构3.10.1 连系统构成的系统3.10.2 基于SASIS的软件过程3.10.3 应用范围3.11 特定领域软件体系结构。
国家体育场(鸟巢)工程施工新技术综述

国家体育场(鸟巢)工程施工新技术综述李久林,杨俊锋,杨庆德,邱德隆,盛宇,张颖(北京城建集团有限责任公司,100088北京)摘要:国家体育场是2008年北京奥运会的主会场。
其造型呈马鞍形,外壳由钢结构编织成鸟巢状,内部为三层碗状看台混凝土结构。
看台结构存在大量斜柱、斜梁、空间环梁等异形构件。
钢结构总用钢量约4.2万t。
施工中通过采用高强高性能混凝土技术、钻孔灌注桩后压浆技术、HRB钢筋应用技术、Q460高强钢厚板焊接技术、成套箱形弯扭构件加工制作技术等,取得了一系列研究成果,提高了我国建筑技术水平,社会经济效益和环保效益非常显著。
其中7项科技成果填补国内空白,达到国际先进或国际领先水平,完成了国家级工法4项。
本工程已获得结构“长城杯”金杯和中国钢结构金奖。
关键词:体育场;鸟巢;钢结构;混凝土;厚板焊接中图分类号:rITU74文献标识码:B文章编号:1000--4726(2008)08—0564一ooSUM卟僵ARYoFNEWCONSTRUCTIONTECHNOLOGIESINNATIoNALSTADIUMLIJiulin。
YANGJunfeng。
YANGQingde,QlUDelong,SHENGYu,ZHANGYing(BeringUrbanConstructionGroupCo.,Ltd.,100088,Bering,China)Abstract:Asthemainstadiumfor2008OlympicGames,NationalStadiumhassaddle—likeconfigurationandbirdneststeelshellwhileitsinternalstructureisthreefloorsofbowlconcretestandsinwhichlotofobliquepostsandbeamswellasspatialringbeamsarranged,withtotalsteelconsumptionof42,000t.Sometechnologieswereappliedintheconstruction,includingconcreteofhishstrengthandhishperformance,postpressuregroutingintodrivencast-in-placepile,appliedtechnologyforHRBsteelbar,thickplateweldofhJighstrengthsteelQ460andfabricationofbending-twistingboxcomponentsandete.neresearchachievementsmadeintheprojecthaveimprovedtheconstructionlevelofourcountry,reachedremarkablesocial,economicalandenvironmentalbenefits.Amongthem,7scientificachievementsattaintheinternationaladvancedleadinglevel,4constructionmethodscompletedreachthenationallevel.neprojecthasbeenawarded“GreatWallCup”ofstructureandgoldenprizeofChinasteelstructure.Keywords:stadium;birdnest;steelstructure;concrete;thickplateweld国家体育场(图1)位于奥林匹克公园中心区南部,是北京2008年第二十九届奥运会的主会场,承担开幕式、闭幕式和田径比赛,赛时可容纳观众91000人,其中临时坐席11000个(赛后拆除)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
采购员 数据访问层
实现数 据库访问
数 据 库
什么是三层结构
表示层:
为用户提供一种交互式操作界面
什么是三层结构
业务逻辑层
//……………… switch (type) { case "管理员": loginPwd = GetAdminLoginPwd(loginID); break; case "学员": 用户请求数据 loginPwd = GetStudentLoginPwd(loginID); break; } //…………………
实现业务逻辑层
1、在“MySchoolBLL”项目上单击右键选择“添加” 新建项 2、在“添加新项“对话框中 选择”类”
类名称
新增类有: LoginManager.cs 如何实现业务逻辑功能?
实现业务逻辑层
:用户登录
1、回顾第二章的实现 2、在业务逻辑处理类中引用数据访问层、业务实体层命名空间 3、实例化数据访问对象 4、调用数据访问功能 5、实现业务逻辑处理功能
3、数据库访问实现
首先我们看一下界面部分的关键代码
为什么需要三层结构
界面层实现
// 登录 private void btnLogIn_Click(object sender, EventArgs e) { //…………….. if (ValidateInput()) { // 调用用户验证方法 isValidUser = ValidateUser(cboLogInType.Text, txtLogInId.Text, txtLogInPwd.Text, ref message); // 如果是合法用户,显示相应的窗体 //……………….. } }
2、选择“项目”,选中“逻辑层”单击 确定 完成对逻 辑层的引用
添加业务逻辑层对数据访问层的依赖与此类似
为什么需要实体类
回顾我们第二章做的“学员信息列表”
DataSet
数 据 库
它不具备OO的优点 实现数据检索比较繁琐、易出错 它使数据结构暴露在业务逻辑层和表示层
为了消除以上局限性我们需要使用实体类
实现业务实体层
编写实体类
实体类
它是业务的基础、数据传递的载体,它与其他项目的依赖关系是什么?
实现业务实体层
回顾第一章“三层之间相互依赖”的实现 实现三层对业务实体的依赖
表示层
业务实体
业务逻辑
数据访问层
设计用户界面
1、在“MySchool”项目上单击右键选择“添加” 新建项 2、在“添加新项“对话框中选择”Windows 窗体” 3、按需求添加所需窗体,并编辑窗体
ZJWCHC
三层结构的设计与实现
目标
使用三层结构开发项目 体会到使用三层结构开发的优势
为什么需要三层结构
饭店
顾客 服务员 厨师 采购员
服务员只管接待客人 厨师只管烹炒客人要的美食 采购员只管按客人需求采购肉,海鲜,蔬菜 他们各负其责共同协作为客人提供美食
为什么需要三层结构
离职、请假
离职、请假
离职、请假
要掌握这一切,我们将整个实现过程分为以下步骤
搭建三层结构步骤
1、搭建表示层(创建一个Windows应用 程序) 2、搭建业务逻辑层(类库) 3、搭建数据访问层(类库) 4、添加各层之间的相互依赖
现在我们打开VS IDE环境逐层搭建三层结构
搭建表示层
1、文件 新建 项目 :创建一个新项目 2、在弹出的“新建项目“窗口中,选择 Windows应用程序
三层结构:
用户 界面 业务 逻辑 数据 访问
数据 库
三层结构软件模型
当数据库 或 用户界面 发 生改变时 需 要重新开 发 当数据库 整个系统 或 用户界面 发 生改变时 不 需要重新 开 发,只做 简 单调整即
什么是三层结构
服务员 表示层
为用户提供 交互操作界面
厨师
业务逻辑层
负责关键业务的 处理和数据传递
用户请求数据
是表示层与数据访问层之间的桥梁,负责数据处理、传递。
什么是三层结构
数据访问层
//…………. conn.Open(); SqlDataReader objReader = objCommand.ExecuteReader(); if (objReader.Read()) { 数 据 库 SQL 命令 用户请求数据 studentlist.Add(objReader["LoginPwd"]); studentlist.Add(objReader["UserStateId"]); } objReader.Dispose(); conn.Close(); //……………..
表示层
业务逻辑层
数据访问层
2
三层结构中的实体类
:数据访问层如何使用实体类
1
数 据 库
2
完成本章任务的步骤
实现业务实体层 新增项目MySchoolModels 添加其它项目对实体项目的引用 添加数据表对应的实体类 编写实体类 设计用户界面 实现数据访问层 实现业务逻辑层 实现表示层数据绑定
实现业务实体层
在解决方案“MySchoolPro” 上单击右键 选择“添加” 新建项目
选择 语言 种类 项目类型
输入项目名称 MySchoolModels
选择项目 生成路径
实现业务实体层
在 “MySchoolModels”项目上单击右键选 择“添加” 新建项
类名称
依次添加“Admin.cs、Class.cs、Grade.cs”
实现数据访问层
1、在“MySchoolDAL”项目上单击右键选择“添加” 新建项 2、在“添加新项“对话框中选择”类”
类名称
新增类有: AdminService.cs StudentService.cs 如何实现高效的数据访问呢?我们需要掌握using语句的使用
实现数据访问层
:用户登录
1、在数据访问实现类中引用业务实体项目命名空间 2、实例化SqlConnection对象,实现数据库连接 3、实例化SqlCommand对象,执行SQL命令 4、实例化SqlDataReader对象,读取数据 5、使用实体类传递信息 6、回顾List<T>的使用
1、文件 新建 项目 :创建一个新项目 2、在弹出的“新建项目“窗口中,选择类库
项目类型 选择 语言 种类
项目名称: MySchoolDAL 选择 “添入解决方案”
选择 项目 路径
如何将三层中各自独立的项目产生依赖
添加各层之间的相互依赖
:添加表示层对业务逻辑层依赖 1、右键单击“引用”选择“添加引用”
为什么需要三层结构
public bool ValidateUser(string loginType, string loginId, string loginPwd, ref string message) { int count = 0; // 数据库查询的结果 bool result = false; // 返回值,是否找到该用户 逻辑判 断实现 // 查询是否存在匹配的用户名和密码 if (loginType== “管理员”) // 判断是否是管理员用户 { //数据访问实现代码…………………. } else if (loginType == "学员") { //数据访问实现代码………………….. 用户登录实现方法 } return result; }
为什么需要实体类
表示层 表示层后台代码
业务逻辑层
用户请求 处理窗体 传递参数 数据访问层 请求数 据操作 解析实体对象 数据库
构建实体对象
返回
调用存储过程 返回行集
返回 展示数据 解析实体对象
构建实体对象或集合
为什么需要实体类
从OOP思想考虑
它是完全受控制的对象 它具有面向对象的基本特征 它可以自定义行为
项目类型
选择 语言 种类 输入项目名称 MySchool 创建解决方案 选择项目 生成路径
搭建业务逻辑层
1、文件 新建 项目 :创建一个新项目
2、在弹出的“新建项目”窗口中,选择类库
项目类型 选择 语言 种类 项目名称: MySchoolBLL 选择 “添入解决方案”
们得到结论是?
为什么需要三层结构
结论是: 1、数据库访问和用户类型判断逻辑放在一起实现
2、用户界面层直接调用数据访问实现
3、整个系统功能放在同一项目中实现
从结论可知,我们开发的两层结构应用系统有哪些局限性?
为什么需要三层结构
两层结构:
用户界面 业务逻辑 数据访问
数据 库
两层结构软件模型
它消除了关系数据和对象之间的差异
它为我们在关系数据库和对象之间架起一座桥梁
什么是实体类
管理员信息 对应的实体类 管理员 数据表
简单地说就是描述一个业务实体的类,例如:管理员信息
三层结构中的实体类
:表示层如何使用实体类
1
2
三层结构中的实体类
:业务逻辑层如何使用实体类
1
实 体 对 象 实 体 对 象
实现表示层数据绑定
:用户登录
1、在窗体后台实现类中引用业务逻辑层、业务实体层命 名空间 2、实例化业务逻辑处理对象和业务实体对象 3、数据绑定 4、调用业务逻辑层功能
总结
三层结构中各层之间相互依赖是如何实现的? 数据访问层的主要职责是什么? 表示层的主要职责是什么? 实体类在三层结构中的主要作用是什么?
为什么需要三层结构
public bool ValidateUser(string loginType, string loginId, string loginPwd, ref string message) { //……………………. // 查询是否存在匹配的用户名和密码 管理员信息数据访问 // 查询用sql语句 string sql = string.Format( "SELECT COUNT(*) FROM Admin WHERE LogInId='{0}' AND LogInPwd='{1}'", txtLogInId.Text txtLogInPwd.Text ); 学员信息数据访问 //………. 用户登录实现方法 // 查询用sql语句 string sql = string.Format( "SELECT COUNT(*) FROM Student WHERE LogInId='{0}' AND LogInPwd='{1}'",txtLogInId, txtLogInPwd); }