免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
讲解三层结构和抽象工厂模式 这里我们结合课件,采用案例演示教学法,层层深入,大把这个难点讲解完成。前面课程已经讲解简单三层授课技巧,后续任务在此基础上实现。操作流程:1. 添加一个新的项目(类库):AccessDAL。2. 修改原先的DAL层名称为SQLDAL,并修改所有的该层命名空间为SQLDAL.并修改此项目的属性的程序集名称和默认命名空间名称为SQLDAL。3. 修改BLL层所有相关DAL层的引用。using SQLDAL4. 编译项目,重新生成。 接口的引入和简单工厂:为什么要使用接口呢,现在的软件产品不可能指针对一个数据库,如劳资管理系统,大公司使用SQL Server,小公司可能使用access就够用了,那么如何让一套程序既可使用SQL Server又可使用Access作为数据库呢,答案是我们在数据访问层使用统一的接口,让访问SQL Server和Access的类都实现这个接口,然后通过接口调用具体的实现。具体的演示方法是在前面代码的基础上点击DAL层的类,右键选择重构,选择提取接口,这样一个接口就出现了。如下图所示: 图三 提取接口我们这里为了更加的规范,建立一个接口层的类库IDAL,将这个接口移到这个类库IDAL中,要注意删除原有在SQLDAL中的接口。重新编译,修改错误。修改原先引用接口的代码:IDAL.IGuestService在数据访问层添加对IDAL的引用,并增加using IDAL代码。同时调整拷贝到IDAL层的接口相关的代码,修改其命名空间。namespace IDAL。在业务逻辑层增加对IDAL的引用。在IDAL添加对Models的引用。接口建立以后,为了可以使用Access库,我们添加新的数据层AccessDAL,再添加一个GuestService类(注意必须和原有的Sqldal层类同名)并实现现刚刚创建的接口。为了方便演示有一个技巧,你可以复制上面的代码到AccessDAL类库中,并做对应修改,返回值为空或true即可。最后修改BLL层的调用方式为接口调用,用接口隐示的声明,用类显示的实现调用,对于访问SQLServer数据库具体的代码是:private readonly IGuestService guestService = new GuestService();如果需要访问Access库,稍加改动就变成访问Access库,只需要修改对应的using AccessDAL;逻辑层代码变为:接口就可以实现访问不同的数据库我们为什么采用工厂模式呢,原因有两个,第一是客户提出新需求,自己不改变源码就更换为其他数据库;第二是从开发公司考虑,为了适应不同的数据库,每次需要修改BLL层源代码,再编译程序,发布程序比较麻烦。那么具体实现步骤是创建新的工厂项目类,添加类DALFactory,然后在类中实现返回实现产品接口的方法,通过Web.Config读取配置数据,针对不同数据库,返回不同实现接口的对象,最后修改BLL层的调用方式为工厂调用,用接口隐示声明,;这样我们就可以通过修改配置文件实现不同数据库的访问,实现了简单工厂的设计模式。(不深入,直接转入用抽象工厂。)抽象工厂:有了简单工厂,为什么还要使用抽象工厂呢,原因是一个大的软件项目中包括很多的模块,不同的模块就要创建不同的接口,那么如何返回很多实现接口的对象呢 ,在简单工厂模式中只能编写多块相似的代码,通过判断数据库的类型返回具体的对象,这样就造成大量的代码冗余,这里采用优化的方法,即抽象公共的部分,通过抽象类调用具体的实现类,可以产生一批有关联的产品,例如通过配置文件读取是Access数据库类型,那么得到是Access的工厂,工厂里的产品都是通过访问Access数据库数据产生的产品。可以说对于简单工厂模式一次只能创建一个对象,而对于抽象工厂模式实现一次创建一系列相互依赖对象的需求。具体的演示实现步骤是:为表示层增加一个app.config。然后添加一个项目DALFactory,并增加一个类:AbstractFactory。添加相应的抽象方法CreateGuestService,通过读取对应的配置文件app.config,返回实现抽象类的工厂;1. 为工厂类添加引用System.configuration。2. 增加代码string path = ConfigurationManager.AppSettingsDBType.ToString();,获取app。config中的配置数据库选项信息。3. 修改工厂代码如下:4.5.逻辑层修改如下:去掉对SQLDAL的引用,更改为引用工厂。using DALFactory;这样我们就将数据访问层的内容进行了细化,首先引入接口,然后引入抽象工厂模式,通过演示让学员明白为什么要抽象工厂以及如何使用它。具体的讲解思路如下图4所示:图四 细化数据访问层这里我们演示完成后,学员还无法透彻地理解抽象工厂模式,下面共享一个生活案例给大家,通过案例剖析抽象工厂的实现方式,首先看下图图五图五:抽象工厂一客户是什么?这里我们说的客户是指调用者,具体而言如网站的美工设计人员;那么地图是什么呢?指配置文件,快餐点比喻我们的抽象工厂,汉堡和鸡腿比喻抽象产品,客户即调用者只知道这些,具体的哪个快餐店,如何制作什么汉堡,客户并不关心,只要能到最方便的快餐店吃到汉堡,填饱肚子即可。具体的工厂是肯德基和麦当劳,具体产品是KFC的汉堡、KFC鸡腿,他们这一组是相关的,另外一组是McDonald汉堡、McDonald鸡腿,他们两个是相关的,是可以左手拿着McDonald汉堡,右手拿着McDonald鸡腿狼吞虎咽的;我们把相关的产品,称为一系列的产品,你还想吃薯条,稍微扩展一下,加一个薯条的产品,包括抽象薯条和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- icrd安全测试题及答案解析
- 2025年互联网金融行业数字化转型策略研究报告及未来发展趋势预测
- 2025年人工智能娱乐行业创新内容与用户体验研究报告及未来发展趋势预测
- 安全员b证公路专业考试题库及答案解析
- 2025年大数据行业隐私保护与数据安全研究报告及未来发展趋势预测
- 安全监理员技能考试题库及答案解析
- 信息安全题库pdf及答案解析
- 节能型产品效益保证承诺书3篇
- 采购需求分析及供应商选择决策支持工具
- 2025年初中口算难题试卷及答案
- 火电厂运行维护流程及安全管理
- 2025年外交部遴选公务员面试题及答案详解
- 水利水电工程单元工程施工质量验收标准 第4部分:堤防与河道整治工程
- 2025贵州黔东南州锦屏县农业农村局招聘基层农技推广体系改革与建设补助项目特聘农技员5人考试备考试题及答案解析
- 2025年碳汇计量评估知识体系梳理与高级模拟题实战训练
- 北京化工大学《化工热力学》2025-2026考试试卷A参考答案
- (2025年标准)宾馆赔偿和解协议书
- 2025 -2026年秋学期第一学期(21周)中小学国旗下讲话稿(第14周):法理如灯耀乾坤律心如磐守乾坤
- 职业生涯规划讲解要点
- 2025至2030中国体育培训行业市场发展分析及发展趋势与发展趋势分析与未来投资战略咨询研究报告
- 考前2025年河北省石家庄市辅警协警笔试笔试真题(含答案)
评论
0/150
提交评论