1.适配器类
namespace Data
{
public abstract class OperateDB
{
public abstract string IndertDB();
public abstract string UpdateDB();
public abstract string DelDB();
}
/// <summary>
/// 适配器模式:其实就是代理模式的一个变种,代码的编写方式都差不多。只是,使用这
/// 两种模式的出发点不一样,导致这两种模式产生了细微的差别
/// </summary>
public class Adapter : OperateDB
{
//注意此处
OperateOracle oo = new OperateOracle();
public override string IndertDB()
{
return oo.IndertDB();
}
public override string UpdateDB()
{
return oo.UpdateDB();
}
public override string DelDB()
{
return oo.DelDB();
}
}
public class OperateMSSQL : OperateDB
{
public override string IndertDB()
{
NorthwindEntities db = new NorthwindEntities();
Employees e = new Employees();
e.LastName = "yoyozhu";
e.FirstName = "zhushao";
db.AddToEmployees(e);
db.SaveChanges();
return "添加数据成功";
}
public override string UpdateDB()
{
NorthwindEntities db = new NorthwindEntities();
Employees e = db.Employees.Where(c => c.EmployeeID == 19).FirstOrDefault();
e.LastName = "chuanshi_yoyo";
db.SaveChanges();
return "修改数据成功";
}
public override string DelDB()
{
NorthwindEntities db = new NorthwindEntities();
Employees e = db.Employees.Where(c => c.EmployeeID == 19).FirstOrDefault();
db.DeleteObject(e);
db.SaveChanges();
return "删除数据成功";
}
}
public class OperateOracle
{
public string IndertDB()
{
return "添加Oracle数据成功";
}
public string UpdateDB()
{
return "修改Oracle数据成功";
}
public string DelDB()
{
return "删除Oracle数据成功";
}
}
}
2.调用
static void Main(string[] args)
{
OperateDB adapter = new Adapter();
Console.WriteLine(adapter.IndertDB());
Console.ReadKey();
}