【设计模式】抽象工厂模式
来源:互联网 发布:ug编程 编辑:程序博客网 时间:2024/06/16 19:05
一、定义:
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
二、结构图:
三、代码实现:
IDepartment接口,用于客户端访问,接触与具体数据库访问的耦合:
interface IDepartment { void Insert(Department department); Department GetDepartment(int id); }SqlserverDepartment类,用于访问SQL Server的Department。
class SqlserverDepartment:IDepartment { public void Insert(Department department) { Console.WriteLine("在 SQL Server 中给 Department 表增加一条记录"); } public Department GetDepartment(int id) { Console.WriteLine("在 SQL Server 中给 Department 表增加一条记录"); return null; } }AccessDepartment类,用于访问Access的Department。
class AccessDepartment:IDepartment { public void Insert(Department department) { Console.WriteLine("在Access中给Department表增加一条记录"); } public Department GetDepartment(int id) { Console.WriteLine("在Access中根据ID得到Department表一条记录"); return null; } }IFactory接口,定义一个创建访问Department表对象的抽象的工厂接口。
interface IFactory { IUser CreateUser(); IDepartment CreateDepartment(); }SqlServerFactory类,实现IFactory接口,实例化SqlserverUser和SqlserverDepartment。
class SqlServerFactory:IFactory { public IUser CreateUser() { return new SqlserverUser(); } public IDepartment CreateDepartment() { return new SqlserverDepartment(); } }AccessFactory类,实现IFactory接口,实例化AccessUser和AccessDepartment。
class AccessFactory:IFactory { public IUser CreateUser() { return new AccessUser(); } public IDepartment CreateDepartment() { return new AccessDepartment(); } }客户端代码
static void Main(string[] args) { User user = new User(); Department dept = new Department(); //IFactory factory = new SqlServerFactory(); //IFactory factory = new AccessFactory(); IFactory factory = new AccessFactory(); IUser iu = factory.CreateUser(); iu.Insert(user); iu.GetUser(1); IDepartment id = factory.CreateDepartment(); id.Insert(dept); id.GetDepartment(1); Console.Read(); }结果显示如下:
阅读全文
0 0
- 抽象工厂设计模式
- 设计模式-----抽象工厂
- 抽象工厂设计模式
- 抽象工厂设计模式
- 抽象工厂设计模式
- 设计模式 抽象工厂
- 设计模式--抽象工厂
- 设计模式--抽象工厂
- 设计模式 抽象工厂
- 设计模式-抽象工厂
- 设计模式-> 抽象工厂
- 抽象工厂设计模式
- 设计模式--抽象工厂
- 【设计模式】抽象工厂
- 设计模式---抽象工厂
- 【设计模式-抽象工厂】
- 设计模式-抽象工厂
- 设计模式--抽象工厂
- 深度探索C++模型
- 实现购物车
- 【队内胡策】2017.10.15
- STM32使用C标准库time.h里面的时间时钟函数
- java分代回收垃圾
- 【设计模式】抽象工厂模式
- Object Detection -- 论文SSD(SSD: Single Shot MultiBox Detector)解读
- JDBC
- Kotiln控制流
- UVALive
- 16. 3Sum Closest
- 从字符串里面匹配截取指定内容
- MySQL用户管理笔记
- 来自西弗吉利亚大学li xin整理的CV代码合集(转)