- 3
- 0
- 约1.54千字
- 约 31页
- 2018-05-14 发布于四川
- 举报
Chapter 大话设计模式(三) 应用抽象工厂+反射实现 通用数据源设计 为什么我的数据库不能动? 应用工厂模式重构项目 应用抽象工厂模式重构项目 反射+抽象工厂模式重构项目 反射+抽象工厂+程序集实现通用数据源项目 为什么我的数据库不能动? 问题出现在哪里? 客户端调用 … User user = new User(); SqlserverUser su = new SqlserverUser(); su.Insert(user); su.GetUser(1); … 改进1 解决思路:利用工厂方法模式(利用多态)来封装 new SqlserverUser()所造成的变化. 说明:工厂模式就是定义一个创建对象的接口,让 子类来决定实例化哪个类 改进的优点 1、客户端与服务端代码解耦,改动小 2、如增加功能,只需增加新的类即可。符合基本的封闭-开放原则 缺点: 1、仍然需要客户端来决定实例化哪个类 2、如再增加一个部门(depart)类的话,增加的代码太多 解决方案:抽象工厂模式 对比工厂方法模式 抽象工厂模式 抽象工厂的优点 抽象工厂的缺点 1、客户端使用到接口的地方都需要发生改动 用简单工厂来改时抽象工厂 优点: 客户端彻底的解耦。 缺点: DataAccess内部仍需判断 反射+抽象工厂解决问题 优点:95%符合开放-封闭原则 缺点:仍然要修改 P
原创力文档

文档评论(0)