1.外观模式类
namespace Data
{
/*外观模式:为外界调用提供一个统一的接口,把其他类中需要用到的方法提取
* 出来,由外观类进行调用。然后在调用段实例化外观类,以间接调用需要的
* 方法。这种方式和代理模式有异曲同工之妙。然而,根据迪米特法则,代理
* 模式应该尽可能的为单个对象进行代理。而外观模式更像是从众多类中提取
* 有用的方法而组合成的新类*/
public class Facde
{
private string result;
InsertDB insert;
UpdateDB update;
DelDB del;
public Facde()
{
insert = new InsertDB();
update = new UpdateDB();
del = new DelDB();
}
public string OperateDB()
{
result = insert.OperateData() + "\n" + update.OperateData() + "\n" + del.OperateData();
return result;
}
}
/// <summary>
/// 添加数据类
/// </summary>
public class InsertDB
{
public string OperateData()
{
NorthwindEntities db = new NorthwindEntities();
Employees e = new Employees();
e.LastName = "yoyozhu";
e.FirstName = "zhushao";
db.AddToEmployees(e);
db.SaveChanges();
return "添加数据成功";
}
}
/// <summary>
/// 删除数据类
/// </summary>
public class DelDB
{
public string OperateData()
{
NorthwindEntities db = new NorthwindEntities();
Employees e = db.Employees.Where(c => c.EmployeeID == 44).FirstOrDefault();
db.DeleteObject(e);
db.SaveChanges();
return "删除数据成功";
}
}
/// <summary>
/// 修改数据类
/// </summary>
public class UpdateDB
{
public string OperateData()
{
NorthwindEntities db = new NorthwindEntities();
Employees e = db.Employees.Where(c => c.EmployeeID == 44).FirstOrDefault();
e.LastName = "chuanshi_yoyo";
db.SaveChanges();
return "修改数据成功";
}
}
}
2.调用
static void Main(string[] args)
{
Facde f = new Facde();
Console.WriteLine(f.OperateDB());
Console.ReadKey();
}