请教一个关于依赖注入的问题
请教一个关于依赖注入调用的问题。
我有一个创建客户信息的功能,分别定义了一个实体类Customer,一个数据层接口ICustomerDataAccess,一个数据层实现类CustomerDataAccess,及业务逻辑CustomerBusiness。
其中,为了在业务逻辑CustomerBusiness中隐藏对CustomerDataAccess的依赖,所以在CustomerBusiness中用了构造函数来依赖注入。代码如下
public class Customer{ public int CustomerId{get;set;} public string CustomerName{get;set;} public string Address{get;set;}}public interface ICustomerDataAccess{ bool Add(Customer customer);}//数据访问public class CustomerDataAccess : ICustomerDataAccess{ public bool Add(Customer customer) { string sql = @"INSERT INTO dbo.Customer (CustomerName,Address) VALUES (CustomerName,@Address)"; SqlParameter[] param = { new SqlParameter("@CustomerName",customer.CustomerName), new SqlParameter("@Address",customer.Address) }; return SQLHelper.ExecuteNoQuery(sql,param); }}//业务逻辑public class CustomerBusiness{ ICustomerDataAccess _customerDataAccess; //如果用这个构造函数实例化的话,就还是让CustomerBusiness依赖了具体的Customer实现(CustomerDataAccess) //所以用了一个带参数的构造函数注入 //public CustomerBusiness() //{ // _customerDataAccess = new CustomerDataAccess(); //} public CustomerBusiness(ICusomterDataAccess customerDataAccess) { _customerDataAccess = customerDataAccess; } public bool CreateCustomer(Customer customer) { return _customerDataAccess.Add(customer); }}protected void btnSave_Click(object sender,EventArgs e){ //CustomerBusiness business = new CustomerBusiness( //就是这里该怎么调用CustomerBusiness呢?}public class CustomerDataAccessFactory { //里面有个获取实例的方法 public static GetInstance() { //根据配置文件或写死 实例化哪个实体类 ICusomterDataAccess customerDataAccess = new XXXXXXX(); return customerDataAccess ; }}
[解决办法]