重複したコードを解決

重複コードを解決するには、後続のセクションで詳細に説明されるであろうTWE工程(抽出および呼び出し)を含みます。

抽出は、プログラマがクラスで定義されたメソッドに重複コードを抽出する必要があることを意味します。あなたは、新しいクラスを追加したりする方法が含まれるように既存のクラスを変更することができます。あなたはこの方法が唯一のクラス内で呼び出されていることを確認している場合、それはプライベートメソッドとして定義することshoud。そうでない場合、メソッドのアクセス指定は、公開または他人でなければなりません。

呼び出しは、ちょうど上記メソッドを呼び出すことを意味します。呼び出しは、直接呼び出しと間接呼び出しを含みます。
直接呼び出しは次のようになります
クラス呼び出し元{
callerMethod {callee.calleeMethod()}
}
を直接呼び出されたメソッドは、典型的には、ユーティリティメソッドとして使用されています。

間接的な呼び出しの方法は、ファクトリパターン、のIoC / DIとAOPが含まれています。工場パターン又はのIoC / DIによって間接的に呼び出されたメソッドは、一般に、共有ビジネスロジックとして使用されています。ケースを考える:プログラムの多くの場所は、メソッドを呼び出す必要がありますが、いくつかの場所では、ロジックを維持する必要があり、いくつかの場所は、ロジックを変更する必要があります。この場合は、直接呼び出しはそれに問題を持っているでしょう。呼び出し側のメソッドでmethed呼び出し式がまだ複製されますので。この場合の解決策は、次に具体的なインスタンスを生成するために、工場のパターンを使用するか、またはインスタンスを注入するためのIoC / DIを使用し、具体的な実装を交換するためのインタフェースを導入することです。したがって、私たちは、呼び出し元メソッドを変更して逃げることができます。ファクトリパターンの呼び出し元に対するのIoC / DIは、このような問題はありませんが、工場に依存する必要があります。

AOPによって間接的に呼び出されたメソッドは、一般に、ベース/システム・サービスとして使用されています。ケースを考える:システムサービスは、ビジネスロジックを横断またはいくつかの場所では、システムサービスを削除する必要があります。この場合は、AOPは、最適なソリューションです。

おすすめ

転載: www.cnblogs.com/tsai-87/p/10983454.html