アルゴリズムをクラスにカプセル化することはどのように (一般的ではない) のだろうか? より具体的には、相互に共通のパラメーターを転送するいくつかの個別の関数を使用する代わりに、次のようにします。
void f(int common1, int param1, int *out1);
void g(int common1, int common2, int param1, int *out2)
{
f(common1, param1, ..);
}
共通パラメーターをクラスにカプセル化し、コンストラクターですべての作業を行います。
struct Algo
{
int common1;
int common2;
Algo(int common1, int common2, int param)
{ // do most of the work }
void f(int param1, int *out1);
void g(int param1, int *out2);
};
関数の引数を介して共通のパラメーターと中間結果を転送する必要がないことは非常に実用的だと思われます..しかし、この「パターン」が広く使用されているのを見たことがありません..考えられる欠点は何ですか?