依赖注入模式
依赖注入模式
什么是依赖注入:
依赖注入就是new好了依赖的对象注入进去,而不是在类中显式的new一个依赖的对象
依赖注入的中心思想:
高层模块不应依赖于低层模块,他们都应该依赖于抽象
抽象不依赖细节,细节依赖抽象
public interface IDataAccess
{
void Add();
}
public class SqlServerDal:IDataAccess
{
public void Add()
{
Console.WriteLine("在数据库中添加一条订单!");
}
}
public class Order
{
private IDataAccess _ida;//定义一个私有变量保存抽象
//构造函数注入
public Order(IDataAccess ida)
{
_ida = ida;//传递依赖
}
public void Add()
{
_ida.Add();
}
}
我们再来编写控制台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DIPTest
{
class Program
{
static void Main(string[] args)
{
SqlServerDal dal = new SqlServerDal();//在外部创建依赖对象
Order order = new Order(dal);//通过构造函数注入依赖
order.Add();
Console.Read();
}
}
}
这样就解偶了Order和SqlServerDal类方法,SqlServerDal可以换成accessDal,非常灵活,不需要修改代码。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!