내부 클래스에서만 호출되는 "private" 메서드는 해당 내부 클래스로 이동해야 합니다

 

private 메서드가 내부 클래스에서만 호출되면 해당 내부 클래스로 이동시키지 않을 이유가 없습니다. 그렇게해도 바깥 계층의 클래스 멤버들이 여전히 동일한 접근 권한을 갖습니다. 게다가 코드는 훨씬 명확해지고 덜 혼란스러워질 겁니다.

규칙을 어긴 코드

public class Outie {
  private int i=0;

  private void increment() {  // 규칙을 어긴 코드
    i++;
  }

  public class Innie {
    public void doTheThing() {
      Outie.this.increment();
    }
  }
}

규칙을 준수한 코드

public class Outie {
  private int i=0;

  public class Innie {
    public void doTheThing() {
      increment();
    }

    private void increment() {
      Outie.this.i++;
    }
  }
}

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project