[英]Style vs. Consistency when deciding between return value and 'callback'
我当前正在重新编写的代码的工作原理如下(C ++ 11之前的版本):
FOO.CPP
if (CONDITION)
{
SyncThing thing;
}
else
{
AysncThing thing;
}
complete(bool isSuccess)
{
// parses status and clears up
}
其中SyncThing和AsyncThing如下:
同步CPP
SyncThing::SyncThing()
{
// some complex synchronous stuff that calls Foo::complete() when done.
}
异步CPP
AsyncThing::AsyncThing()
{
// some complex asynchronous stuff that calls Foo::complete() when done.
}
为了不让构造函数做复杂的事情,并避免在完成后避免构造函数调用Foo :: complete()的非显而易见的代码路径,我想从SyncThing的构造函数中删除复杂的东西,并将其放在一个单独的函数中,该函数称为根据Foo.cpp的逻辑,如下所示:
FOO.CPP
if (CONDITION)
{
SyncThing thing;
bool didTheThing = thing.doSomeComplexSyncStuff();
complete(didTheThing);
}
else
{
AysncThing thing;
}
complete(bool isSuccess)
{
// parses status and clears up
}
我认为这使代码路径更易于遵循。
我的问题如下:
忽略AsyncThing, 是我的SyncThing更好更简单布尔回报版本比有SyncThing或SyncThing :: doSomeComplexSyncStuff(的构造函数)调用foo ::完成()的时候做了什么?
总体而言,考虑到AsyncThing,有必要返回“回调”样式,是否最好保持一致性并对SyncThing进行相同处理,即使对1.的回答为肯定?
非常感谢!
在我看来,最好的事情是对SyncThing
和AsyncThing
做类似SyncThing.setCompletedFunction(&complete)
的AsyncThing
。 这两个都清楚
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.