- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
假设我有一个想要通过 API 公开的 [acme] 对象流。我有两个选择,回调和迭代器。
// API #1
// This function takes a user-defined callback
// and invokes it for each object in the stream.
template<typename CallbackFunctor>
void ProcessAcmeStream(CallbackFunctor &callback);
// API #2
// Provides the iterator class AcmeStreamIterator.
AcmeStreamIterator my_stream_begin = AcmeStreamIterator::begin();
AcmeStreamIterator my_stream_end = AcmeStreamIterator::end();
API #1 从用户手中获取程序的控制流,并且在整个流被消耗之前不会返回(暂时忘记异常)。
API #2 将控制流保留在用户手中,允许用户自行向前移动流。
API #1 感觉更更高层次,允许用户立即跳转到业务逻辑(回调仿函数)。另一方面,API #2 感觉更灵活,允许用户进行较低级别的控制。
从设计的角度来看,我应该选择哪一个?还有更多我还没有看到的优点和缺点吗? future 有哪些支持/维护问题?
最佳答案
迭代器方法更灵活,回调版本可以通过现有算法轻松实现第一个:
std::for_each( MyStream::begin(), MyStream::end(), callback );
关于c++ - 控制反转的利弊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5156797/
如果已经有人问过这个问题,请发表评论,以便我将其删除。 我知道电子邮件验证的优点,特别是在垃圾邮件方面(这很容易杀死我,因为大多数功能都在发表评论中)。 我正在考虑删除我目前正在构建的应用程序的电子邮
您与 Websync 合作的体验如何? ( cometd 框架)?在使用它之前,您是否考虑过任何替代方案? 到目前为止我可以说 优点: 非常简单易用 不需要任何服务器配置 缺点: 昂贵(结果为我们节省
我正在寻找一个好的规则引擎。 我已经看到它存在两个好的项目:JBPM和Drools。 我不太了解两者之间的区别,也不知道要使用什么理想工具。 请您向我提供更多信息以及您在其他方面的经验,以及您认为最适
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
什么是技术/编程/非 SEO 对于域和子域,www 或 no-www 的优缺点是什么? 来自杰夫·阿特伍德 (Jeff Atwood) 的推特 http://twitter.com/codinghor
我是一名优秀的程序员,十分优秀!