我正在创建一个具有这样的构造函数的对象......
public class BusinessLogic()
{
public BusinessLogic()
{
BusinessLogicSubClass blsc = new BusinessLogicSubClass(and I want to pass in BusinessLogic here)
}
}
Run Code Online (Sandbox Code Playgroud)
我这样做是因为我希望BusinessLogicSubClass在完成一个或另一个方法时回调到BusinessLogic中的各种方法.BusinessLogicSubClass还使用构造函数注入,以便我的单元测试可以与NMock2一起使用.
这里的任何建议都会有所帮助,谢谢你提前!
public BusinessLogic()
{
BusinessLogicSubClass blsc = new BusinessLogicSubClass(this);
}
Run Code Online (Sandbox Code Playgroud)
另一种方法(解决Jon Skeet的评论)将是一个构造函数和一个初始化程序,它使用"this"指针:
public class BusinessLogic
{
private BusinessLogicSubClass blsc = null;
public BusinessLogic() {}
public void Initialize()
{
blsc = new BusinessLogicSubClass(this);
}
}
public class Implementor
{
public void SomeFunction()
{
BusinessLogic bl = new BusinessLogic();
bl.Initialize();
}
}
Run Code Online (Sandbox Code Playgroud)
您可以this在构造函数中使用.但这通常不是一个好主意,因为这意味着你在对象完成构建之前已经发布了一个引用.
不清楚为什么你在类本身内创建一个子类 - 我怀疑你的继承层次结构可能并不理想.您能否提供更多细节,以便我们能够推荐更好的设计模式?
| 归档时间: |
|
| 查看次数: |
5241 次 |
| 最近记录: |