我想请教一下最佳实践在我的情况:结构或Messenger在.NET 4.5
假设我有这样的代码
Class BaseClass {
protected bool CheckResponse(string response) {
if (response == SomeCondition)
{
runErrorMessages();
return true;
}
return false;
}
}
Class DerivedClassA {
ConnectorClass myConnector = new ConnectorClass();
private void myCommand(string req) {
string resp = await myConnector.SendDataToServer(req);
if (!CheckResponse(resp))
DoSomething1();
}
}
Class ConnectorClass {
public async Task<string> SendDataToServer(string req) {
string resp = await Server.WaitForResponse(req);
return resp;
}
}
最好是像现在一样或低于这个吗?
Abstract Class BaseClass {
public BaseClass() {
Messenger.Default.Register<string>(CheckResponse);
}
public abstract callWhateverDeriveWant();
private void CheckResponse(string response) {
if (response == SomeCondition)
{
runErrorMessages();
} else
callWhateverDeriveWant();
}
}
Class DerivedClassA {
ConnectorClass myConnector = new ConnectorClass();
private void myCommand(string req) {
await myConnector.SendDataToServer(req);
}
public abstract callWhateverDeriveWant() {
callSomething();
}
}
Class ConnectorClass {
public async Task SendDataToServer(string req) {
string resp = await Server.WaitForResponse(req);
Messenger.Default.Send(resp);
}
}
对于您的信息,会有很多从BaseClass派生的派生类,它的行为与DerivedClassA类似。
请帮我找出解决我的案子的最佳方法。
以前感谢。
当然,如果你的方法命名比结构更具功能性,那么这两种情况会更好。例如'callWhateverDeriveWant'应该是'afterResponseChecked'或类似的东西。 – theMayer 2014-11-08 12:24:26
对不起。什么方法callWhateverDeriveWant做的是做一些事情后,我知道如果答案不是错误的回应。 – 2014-11-08 13:21:16