접근 대 방법에 필드를 통과, 다음 클래스 주어진는 :자바 스타일/최상의 방법 - 자바에서 직접
public class MyClass {
private final Dependency dependency;
public MyClass(Dependency dependency)
{
this.dependency = dependency;
}
public void doWork()
{
// validate dependency...
}
doWork 방법은 dependency
를 사용하는 메소드를 호출 할 필요가있다.
"모범 사례"로 간주되는 다음 두 가지 변형은 어느 것입니까? 그 이유는 무엇입니까? 그것은 (이기는하지만, 변두리) 분리에 테스트 할 수있는 방법은 쉽게로
// 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는 전자이고 functional은 후자입니다. – lucas1000001