2
これは良いパターンですか?長い関数を一連のラムダに置き換えますか?
最近、次のような状況に遭遇しました。 class A{ public: void calculate(T inputs); } まず、A物理世界のオブジェクトを表します。これは、クラスを分割しないことの強力な議論です。今、calculate()非常に長く複雑な機能であることが判明しました。私は3つの可能な構造を知覚します: テキストの壁としてそれを書く-利点-すべての情報が一箇所にある privateクラスでユーティリティ関数を記述し、それらをcalculateボディで使用する-欠点-クラスの残りの部分は、これらのメソッドを知らない/気遣わない/理解しない calculate次のように書きます: void A::calculate(T inputs){ auto lambda1 = () [] {}; auto lambda2 = () [] {}; auto lambda3 = () [] {}; lambda1(inputs.first_logical_chunk); lambda2(inputs.second_logical_chunk); lambda3(inputs.third_logical_chunk); } これは良いプラクティスか悪いプラクティスか?このアプローチは問題を明らかにしますか?全体として、再び同じ状況に直面したとき、これを良いアプローチと考えるべきですか? 編集: class A{ ... public: // Reconfiguration of the algorithm. void set_colour(double …