예 : 두 번째 옵션이 커플 링을 회피하면서클래스 데이터가 내부적으로 전달되거나 직접 액세스되는 것이 더 낫습니까?
// access fields directly
private void doThis()
{
return doSomeWork(this.data);
}
// receive data as an argument
private void doThis(data)
{
return doSomeWork(data);
}
첫 번째 옵션 this.data의 값과 결합된다. 나는 두 번째 옵션이 항상 더 좋은 것처럼 느낀다. 클래스 내에서 느슨한 결합을 촉진합니다. 전역 클래스 데이터에 액세스하는 것은 나쁜 생각처럼 보일뿐입니다. 분명히이 클래스 데이터는 어느 시점에서 직접 액세스해야합니다. 그러나이 전역 클래스 데이터에 대한 액세스가 매개 변수 전달을 통해 제거 될 수 있으면 항상 바람직합니다.
두 번째 예제는 적절한 형식의 데이터로 작업 할 수있는 이점이 있지만 첫 번째 예제는 just 클래스 데이터로 작업 할 수 있습니다. 추가 유연성이 필요하지 않더라도 옵션으로 남겨 두는 것이 좋습니다.
첫 번째 예제와 같이 개인용 메서드에서 직접 멤버 데이터에 액세스 할 때 어떤 이점도 보이지 않습니다. 여기서 가장 좋은 방법은 무엇일까요? 코드를 완전하게 참조했지만이 특정 문제에 대해서는 아무 것도 찾을 수 없었습니다.