아이템 25. 톱레벨 클래스는 한 파일에 하나만 담으라

문법식·2022년 8월 9일
0

Effective Java 3/E

목록 보기
25/52

소스 파일 하나에 톱레벨 클래스를 여러 개 선언하더라도 자바 컴파일러는 잘 작동한다. 하지만 아무런 득이 없을 뿐더러 심각한 위험을 감수해야 하는 행위다. 이렇게 하면 한 클래스를 여러 가지로 정의할 수 있으며, 그 중 어느 것을 사용할지는 어느 소스 파일이 먼저 컴파일하냐에 따라 달라지기 때문이다.
컴파일러에 어느 소스 파일이 먼저 건네느냐에 따라 동작이 달라지는 것은 반드시 바로 잡야아 할 문제다. 해결책은 아주 단순하다. 단순히 톱레벨 클래스들을 서로 다른 소스 파일로 분리하면 된다. 굳이 여러 톱레벨 클래스를 한 파일에 담고 싶다면 정적 멤버 클래스를 사용하는 방벙르 고민해볼 수 있다. 다른 클래스에 딸린 부차적인 클래스라면 정적 멤버 클래스로 만드는 것이 일반적으로 더 나을 것이다. 읽기 좋고, private으로 선언하면 접근 범위도 최소로 관리할 수 있기 때문이다.

profile
백엔드

0개의 댓글