是的,我发现了一些问题,
- 存在循环依赖 b/w Main 和 Status。
- 责任未妥善处理
您的 Main 类拥有与 Status 和 Control 的关联。从代码中我的理解是,Status 是一个检查任何给定控件的类,但不与任何特定控件相关联,因此那里存在弱关联..
在这种情况下,我发现将控件传递给状态会更好。状态 testStatus 方法获取要测试的控件的参数并检查返回状态。下面是代码
#1
class MainClass
{
public Status status1;
public Control control1;
}
class Status
{
public void testStatus(Control control)
{
control.testControl();
}
}
class Control
{
public void testControl()
{
}
}
如果需要更紧密的耦合,您可以将 Status 作为属性添加到 Control。这种方式 Main 仅与 Control 相关联,后者在需要时返回 Status。职责分工明确。
#2
class MainClass
{
Control control1;
public void TestMethod()
{
control1 = new Control();
Status control1Status = control1.GetStatus();
}
}
class Status
{
public Status(Control control)
{
//do status Initiation
IsValid = true //or false
}
public bool IsValid
{
get;
private set;
}
}
class Control
{
public Status GetStatus()
{
return new Status(this);
}
}
#2更好