繁体   English   中英

C ++阅读器功能设计:辅助函数,类,私有,过度设计?

[英]C++ reader function design: helper functions, class, private, over-engineering?

在C ++中,我想实现一个阅读器功能,即只执行一次,返回某些内容然后消失的方法。 读取过程有点复杂,所以我认为我最好将其拆分为一个read(filename)和几个帮助函数。 为了确保它们不会被意外访问,我认为我将整个内容包装在一个无状态的类中,并将那些辅助函数标记为私有。 但是,这产生了代码开销,即必须先创建阅读器类的实例,然后在其上调用read(filename) 好了,让我们创建一个帮助器函数,创建一个所述类的实例,调用read(filename) ,将其转储并返回读取的输出。

class Reader
{
public:
Reader();

virtual
~Reader();

OutputData
read(const std::string & fileName);

private:
helper1_();
helper2_();
helper3_();
};

OutputData
ReadIt(const std::string & fileName)
{
Reader r();
OutputData out = r.read(fileName);
return out;
}

嗯,这有点工程化了。 您对此有何看法?

听起来不错,但是如果您只需要一组没有状态的独立帮助程序函数,则最好使用自由函数并将其隐藏在实现中是一个更好的主意。 一种方法是将所有帮助程序放在实现文件中的匿名名称空间中。

头文件:

namespace Reader {

OutputData reatIt(const std::string& filename);

} // Reader namespace

实施文件

namespace Reader {

namespace {

void helper1_() { .... }
void helper2_() { .... }
void helper3_() { .... }

} // anonymous namespace

readIt(const std::string& filename) {
  // use helpers here. Client code will never know.
}

} // Reader namespace

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM