免責事項: 私は目的 c について zilch を知っています
問題のコードを見ずに言うのは難しく、あなたが何をしているかに完全に依存します. 5 つのパラメーターを持つメソッドを最初から使用するのは悪い習慣であると言うのは、少し推測に過ぎませんが、メソッドのパラメーターの数をできるだけ少なくすることは確かに良い習慣です。
このメソッドが内部の「ヘルパー」メソッドのように聞こえる (API の公開されたコンポーネントではない) という事実は、他の方法よりも余裕を与えますが、通常、メソッドがパラメータの難解な組み合わせに基づいて、さまざまなことを行っています。
冗長なコードを作成しないと再構築できないほど長いシグネチャを持つメソッドに出くわした場合、私は通常、次のいずれかを行います。
攻撃的な方法をいくつかのより簡潔な方法でラップします。例として、「実装」ごとにメソッドを作成し、その目的に必要な引数のみを受け入れる目的を示す適切な名前を付けることができます。次に、内部のより臭いメソッドに委譲します。臭いメソッドは、コード全体に散在するのではなく、「実装固有の」ラッパーでのみ使用されます。代わりに適切な名前のラッパーを使用すると、開発者はパラメーターの意味を解読しなくても意図を理解できます。
メソッドが必要とするデータをカプセル化するクラスを作成します。メソッドの動作がシステムまたはサブシステムの状態に依存する場合は、その状態をカプセル化してください。私はこれを「XXContext」型クラスでよく行います。これで、メソッドはこのコンテキスト データを検査および分析し、適切なアクションを実行できます。これはリファクタリングにも適しています。将来、メソッドがそのタスクを達成したり、新しい機能を実装したりするためにさらに多くの情報を必要とする場合は、メソッドを使用するすべてのコードを変更する代わりに、このデータを引数オブジェクトに追加できます。変更を利用する必要があるコードのみが、コンテキスト データに適切な値を提供する必要があります。