版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、抽象工厂设计模式应用第五章回顾.NET平台下引发异常的原因有几种?VSTS单元测试中代码覆盖率的主要作用是什么? 预习检查1、抽象工厂的职责是什么?2、实体工厂的职责是什么?3、抽象产品与实体产品关系是什么?本章任务升级我们的联机考试系统支持多数据库访问Access数据库访问 SqlServer数据库访问 本章目标会使用抽象工厂设计模式模式起源:同一问题的两种不同解决方案有什么相似之处 软件设计模式设计模式如同此理,它是经验的传承 。地上本没有路,走得人多了也就成了路。软件设计模式人是一个经验性动物 1、每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案下面我们回顾一下简单
2、工厂设计模式 2、设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案3、面向对象设计模式是对在特定场景下,解决一般 设计问题中类与相互通信对象的描述为什么需要抽象工厂设计模式父类产品子类产品A 子类产品B 子类产品C 工厂客户:简单工厂设计模式原理结构 什么是抽象工厂设计模式什么是抽象工厂设计模式抽象工厂 实体工厂2实体工厂1抽象产品A抽象产品B实体产品B1实体产品B2实体产品A1实体产品A2客户 :抽象工厂设计模式原理结构 什么是抽象工厂设计模式1、提供一系列相互依赖对象的创建工作2、封装对象常规的创建方法(new)3、提供统一调用数据访问方法的方式4、避免调用数据访问方法和具体对
3、象创建工作的紧耦合什么是抽象工厂设计模型提供一个创建一系列相关或相互依赖对象的接口,无需指定它们具体的类 客户请求 抽象工厂抽象产品如何用抽象工厂设计模式构建我们的数据访问层? 如何使用抽象工厂设计模式1、用抽象工厂生产抽象产品2、用实体工厂生产实体产品3、用抽象产品提供实体产品访问接口4、用实体产品实现自己的功能:抽象工厂设计模式中各个象的主要功能、职责应用示例:在MySchoolPro数据访问层使用抽象工厂设计模式 SQLServer实体工厂学员抽象产品抽象工厂Access实体工厂管理员抽象产品Access学员实体产品SQL Server学员实体产品客户Access管理员实体产品SQL S
4、erver管理员实体产品小结什么是面向对象设计模式?什么是抽象工厂设计模式?完成本章任务的步骤搭建数据访问层基本架构新增抽象工厂项目新增抽象产品项目实现项目间的依赖实现数据访问接口实现数据访问对象创建功能业务逻辑层调用数据访问层方法实体工厂实体产品抽象产品数据访问层 抽象工厂在解决方案“MySchoolPro” 上单击右键选择“添加” 新建项目新增抽象工厂项目选择语言种类项目类型输入项目名称MySchoolDALFactory选择项目生成路径在解决方案“MySchoolPro” 上单击右键选择“添加” 新建项目新增抽象产品项目选择语言种类项目类型输入项目名称MySchoolIDAL选择项目生成
5、路径实现项目之间的依赖MySchoolMySchoolBLLMySchoolModelsMySchoolIDALMySchoolDALFactory抽象工厂实体工厂抽象产品实体产品箭头方向从引用项目指向被引用项目MySchoolDAL 实现数据访问接口接口名称根据信息类别不同,分别添加不同信息的访问接口 在“MySchoolIDAL”项目上单击右键选择“添加” 新建项实现数据访问接口:使用接口提供数据访问 如何实现数据访问? 1、将相关信息的数据访问放在同一个接口中2、根据需求定义接口中的数据访问方法 演示示例:用户登录数据访问接口定义接口IStudentService.csIAdminSer
6、vice.cs实现接口实现数据访问接口:实现用户登录数据访问接口如何封装数据访问对象的创建? 1、将接口的实现分:Sql Server 和Access两种2、将不同的数据库访问实现放在不同的命名空间下 演示示例:实现用户登录数据访问文件名称:StudentService.csAdminService.cs实现数据访问对象创建功能类名称新增抽象工厂类:AbstracterDALFactory.cs在“MySchoolDALFactory”项目上单击右键选择“添加” 新建项编码实现实现数据访问对象创建功能:在抽象工厂类中用抽象方法提供数据访问对象的创建/. public abstract IStu
7、dentService CreateStudentService(); public abstract IAdminService CreateAdminService();/.抽象工厂提供抽象产品如何选择实体工厂? /实体工厂的选择应该用反射实现, 便于学员理解这里用开关语句实现 public static AbstractDALFactory ChooseFactory() string dbType = ConfigurationManager.AppSettings“DBType”.ToString(); AbstractDALFactory factory = null; switc
8、h (dbType) case Sql: factory = new SqlDALFactory(); break; case Access: factory = new AccessDALFactory(); break; return factory; 实现数据访问对象创建功能如何通过实体工厂实现数据访问对象的创建?实现数据访问对象创建功能类名称新增实体工厂类:SqlDALFactory.csAccessDALFactory.cs实体工厂分为SqlServer和Access两种 在“MySchoolDALFactory”项目上单击右键选择“添加” 新建项/ public class Sql
9、DALFactory : AbstractDALFactory #region Public Methods public override IStudentService CreateStudentService() return new StudentService(); public override IAdminService CreateAdminService() return new AdminService(); #endregion /实现数据访问对象创建功能:实现SqlServer 实体工厂Access 实体工厂的实现与此类似 业务逻辑层调用数据访问层方法/using MySchool.IDAL;using MySchool.DALFactory;/选择实体工厂private static AbstractDALFactory factory = AbstractDALFactory.ChooseFactory();/创建数据访问对象 private static AbstractStudentService studentService = factory.CreateStudent();/调用对象所包含的数据访问方法/studentService.GetStudentByLoginID(loginID);/引用数据访问层 MySchoolModelsM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 果蔬加工设备租赁服务合同
- 2026年气象灾害防御培训总结发言稿
- 电脑编程培训合同
- 导游服务合同范本样本2026
- 2026年行政问题自动应答机器人
- 书道馆2026年书法艺术鉴赏活动协议
- 2026年幼儿园安全管理制度学习讲稿
- 2026年加油站新员工入职安全培训
- 生态化生态保护补偿协议
- 2026年舞蹈工作室店长市场推广与引流培训
- 《2和5的倍数的特征》课件(省一等奖)
- 2023年度上海市教师招聘考试《中学生物》押题卷(含答案)
- 滨州科技职业学院辅导员考试题库
- 教师因两地分居调动工作申请书
- 游岳阳楼记带翻译
- GB/T 10592-2023高低温试验箱技术条件
- CB马达安装维护手册中文
- 2023年道县小升初英语考试题库及答案解析
- JJG 693-2011可燃气体检测报警器
- JJG 1148-2018电动汽车交流充电桩
- GB/T 18707.1-2002机械振动评价车辆座椅振动的实验室方法第1部分:基本要求
评论
0/150
提交评论