C#设计模式-抽象工程模式(5)
2016-11-28 13:29
316 查看
using System; using System.Collections.Generic; using System.Text; using System.Reflection; namespace 抽象工厂模式 { class Program { static void Main(string[] args) { User user = new User(); Department dept = new Department(); IUser iu = DataAccess.CreateUser(); iu.Insert(user); iu.GetUser(1); IDepartment id = DataAccess.CreateDepartment(); id.Insert(dept); id.GetDepartment(1); Console.Read(); } } class User { private int _id; public int ID { get { return _id; } set { _id = value; } } private string _name; public string Name { get { return _name; } set { _name = value; } } } class Department { private int _id; public int ID { get { return _id; } set { _id = value; } } private string _deptName; public string DeptName { get { return _deptName; } set { _deptName = value; } } } interface IUser { void Insert(User user); User GetUser(int id); } class SqlserverUser : IUser { public void Insert(User user) { Console.WriteLine("在Sqlserver中给User表增加一条记录"); } public User GetUser(int id) { Console.WriteLine("在Sqlserver中根据ID得到User表一条记录"); return null; } } class AccessUser : IUser { public void Insert(User user) { Console.WriteLine("在Access中给User表增加一条记录"); } public User GetUser(int id) { Console.WriteLine("在Access中根据ID得到User表一条记录"); return null; } } interface IDepartment { void Insert(Department department); Department GetDepartment(int id); } class SqlserverDepartment : IDepartment { public void Insert(Department department) { Console.WriteLine("在Sqlserver中给Department表增加一条记录"); } public Department GetDepartment(int id) { Console.WriteLine("在Sqlserver中根据ID得到Department表一条记录"); return null; } } class AccessDepartment : IDepartment { public void Insert(Department department) { Console.WriteLine("在Access中给Department表增加一条记录"); } public Department GetDepartment(int id) { Console.WriteLine("在Access中根据ID得到Department表一条记录"); return null; } } class DataAccess { private static readonly string AssemblyName = "抽象工厂模式"; private static readonly string db = "Sqlserver"; //private static readonly string db = "Access"; public static IUser CreateUser() { string className = AssemblyName + "." + db + "User"; return (IUser)Assembly.Load(AssemblyName).CreateInstance(className); } public static IDepartment CreateDepartment() { string className = AssemblyName + "." + db + "Department"; return (IDepartment)Assembly.Load(AssemblyName).CreateInstance(className); } } }
相关文章推荐
- C#设计模式-抽象工程模式(2)
- C#设计模式-抽象工程模式(6)
- C#设计模式-抽象工程模式(3)
- 设计模式笔记6:抽象工程模式(Abstract Factory Pattern)
- [设计模式] 1/2 工程与抽象工程模式 factory & Abstrac Factory
- 设计模式之抽象工程
- 设计模式之禅-抽象工程模式
- C#--抽象工厂设计模式--三层框架
- 设计模式-抽象工程(Abstract Factory)随想
- 设计模式之抽象工程模式Abstract Factory Pattern()C++实现
- 设计模式(六)抽象工程模式
- C#设计模式之抽象工厂
- C#设计模式:抽象工厂方法模式
- C#面向对象设计模式纵横谈 学习笔记3 Abstract Factory 抽象工厂
- 抽象工厂设计模式(C#)
- 设计模式----创建型之抽象工程
- C#设计模式(4)-Simple Factory Pattern
- 从C#的Singleton设计模式
- C#设计模式(2)
- C#设计模式(6)-Abstract Factory Pattern