C++ では、リーダー関数、つまり、一度だけ実行され、何かを返し、その後消えるメソッドを実装したいと考えています。読み取りプロセスは少し複雑なので、1 つのヘルパー関数といくつかのヘルパー関数に分割するのが最善だと考えました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;
}
うーん、それは少し過剰に設計されたにおいがします。これについてどう思いますか?