コードをよりクリーンで保守しやすくするために、現在リファクタリング中の少し複雑なモデルがあります。モデルには主要な機能が含まれており、次にさまざまなモデルが含まれています。各モデルにも 2 つのクラスがあり、1 つはストレージ (データ) 用で、もう 1 つはモデル実行 (ヘルパー) 用です。ヘルパー クラスは、メイン ループ全体で何百万回もインスタンス化されますが、データ クラスに依存します。
今、私は次のようなコードにアプローチしました:
main() {
Base* dataptr = chooseInstance(int x);
Base& data = *dataptr;
// do stuff with data
};
Base* chooseInstance(x) { /* returns instance of A:Base or B:Base */ };
その後、A または B に固有のヘルパー クラスがあり、プログラム全体で繰り返し呼び出す必要があります。現在、私はこれを処理しています:
...
HelperBase* helper = data.getHelper(); // returns custom *HelperA or *HelperB class
helper->doStuff();
...
このアプローチは十分に機能しますが、あまりエレガントではありません。これは、テンプレートなどで別の方法で処理したほうがよいものですか?
この質問は、特定の正しい/間違った問題よりもスタイルの問題であるため、少しあいまいであることを認識しています-そのことをお詫びします。