【发布时间】:2011-06-11 07:15:07
【问题描述】:
在 UI 按钮单击中,我必须先实例化一个 DAL 对象,然后才能实例化一个 BLL 对象。这似乎很麻烦,在对象本身之前创建对象依赖项(比在 BLL 内部实例化依赖项更多的代码)。这仅仅是使用依赖注入必须付出的代价吗?
让我感到困扰的是,实例化 BLL 所需的准备工作在 UI 中。这是进行依赖注入的正确方法吗?有没有办法将 UI 和 BLL 准备逻辑清晰地分开?
class DAL{
//Data access layer
}
class BLL{
public BLL(DAL dal){
this.dal = dal;
}
private DAL dal;
}
buttonRun_Click(object sender, EventArgs e){
DAL dal = new DAL();
BLL bll = new BAL(dal);
bll.DoStuff();
}
【问题讨论】:
-
这真的是 DI 吗? dal 和 bll 都是事件处理程序的本地对象,因此,如果它们没有任何其他依赖项,则 DoStuff() 没有可观察到的效果。