首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在选择返回值和“回调”时,样式与一致性

在选择返回值和“回调”时,样式与一致性
EN

Stack Overflow用户
提问于 2015-12-14 13:40:20
回答 1查看 89关注 0票数 0

我目前正在重新工作的代码如下所示(pre++11):

FOO.CPP

代码语言:javascript
复制
if (CONDITION)
{
    SyncThing thing;
}
else
{
    AysncThing thing;
}

complete(bool isSuccess)
{
    // parses status and clears up
}

其中SyncThing和AsyncThing如下:

SYNCTHING.CPP

代码语言:javascript
复制
SyncThing::SyncThing()
{
    // some complex synchronous stuff that calls Foo::complete() when done.
}

ASYNCTHING.CPP

代码语言:javascript
复制
AsyncThing::AsyncThing()
{
    // some complex asynchronous stuff that calls Foo::complete() when done.
}

为了不让构造函数执行复杂的操作,并避免构造函数调用Foo::complete()的代码路径不明显,我希望从SyncThing的构造函数中删除复杂的内容,并将其放入一个单独的函数中,这个函数从Foo.cpp的逻辑中调用,如下所示:

FOO.CPP

代码语言:javascript
复制
if (CONDITION)
{
    SyncThing thing;
    bool didTheThing = thing.doSomeComplexSyncStuff();       
    complete(didTheThing);
}
else
{
    AysncThing thing;
}

complete(bool isSuccess)
{
    // parses status and clears up
}

我认为这使得代码路径更容易遵循。

我的问题如下:

  1. 忽略AsyncThing,SyncThing的bool返回版本是否比使用SyncThing或SyncThing::doSomeComplexSyncStuff()构造函数调用Foo::SyncThing()更好、更简单?
  2. 总的来说,考虑到当涉及到AsyncThing时返回‘回调’样式是必要的,那么是否最好保持一致性,并且对SyncThing也这样做,即使1的答案是肯定的?

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-12-14 13:43:50

在我看来,最好的做法是为SyncThingAsyncThing做一些类似于SyncThingAsyncThing的事情。这对双方来说都很清楚

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34268494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档