にアクセス対方法にフィールドを渡す:Javaのスタイル/ベストプラクティス - 以下のクラスを考えると、Javaでは直接
public class MyClass {
private final Dependency dependency;
public MyClass(Dependency dependency)
{
this.dependency = dependency;
}
public void doWork()
{
// validate dependency...
}
doWorkメソッドはdependency
を使用してメソッドを呼び出す必要があります。
「ベストプラクティス」と見なされる次の2つのバリエーションのどれですか?その理由は何ですか?
// Access dependency directly
void validateDependency()
{
this.dependency.something();
}
// access dependency as passed to the method
void validateDependency(Dependency dependency)
{
dependency.something();
}
自分はそれが(わずか、いえ)単独でテストする方法を容易にするように、方法に直接依存性を渡し、後者に有利見つけます。
しかし、ここではJavaのコンベンション/ベストプラクティスに興味があります。
それは確かに状況によって異なります。 –
正確に!状況に依存します。たとえば、時間的に結合された操作(特定の順序で呼び出す必要がある)がある場合は、後者を使用する必要があります。さもなければ、あなたのコードのクライアント/保守担当者は、NPEの、あるいはより混乱した動作を得ることになります。 – lucas1000001
また、極端にそれを取るために - 私はあなたが本当に対オブジェクト指向プログラミングスタイルを検討していると思います - ooは前者、後者は後者です。 – lucas1000001