개체의 여러 메서드를 통해 인수를 전달하려는 경우 해당 인수를 인스턴스 변수에 저장하는 것이 좋습니다? 예를 들어인수가 여러 메소드를 통해 전달 될 때 인스턴스 변수에 저장해야합니까?
:이 경우
public class Example {
private int[] array;
public void doThingsToArray(int[] array) {
this.array = array;
// `array` doesn't need to be passed as an argument.
doFirstThingToArray();
doSecondThingToArray();
...
}
...
}
는 Example
의 동일한 인스턴스가 여러 배열에 doThingsToArray()
를 호출하는 데 사용됩니다, 그래서 당신은 단지 Example
의 생성자에 인수로 array
을 전달할 수 없습니다.
내가 볼 수있는 프로는 인자로 array
을 넘겨 줄 필요가 없다는 것입니다. - Clean Code에 따르면, 적어도 메소드가 가진 매개 변수가 적을수록 좋습니다.
나는 단단한 죄수를 생각해 낼 수 없지만,이 상황에 뭔가 잘못 됐음을 느낍니다.
단점 : 즉각적으로 클래스가 스레드로부터 안전하지 않게 만듭니다. 필드는 객체의 상태의 일부가 아니지만 일부 메소드에서 사용되는 임시 값입니다. –
"왜 doThingsToArray()라고 불리는 메소드가 배열을 수정하는 것 이외의 일을하는 것일까?"라는 질문에 대한 첫 번째 질문에 답할 필요가 있다고 생각합니다. " – shmosel
다중 스레드를 사용하지 않으려면 어떻게해야합니까? 나중에 언제든지 그렇게하고 싶을 가능성이 항상 있다고 생각합니다. – Pig