일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 스프링di
- 스프링 시큐리티 설정
- kotlin 리팩터링
- spring formatter
- Spring
- ioc컨테이너
- 도커 이미지 빌드
- 비기능적 요구사항
- method refetence
- 생성자주입
- kotlin ::
- jpa lazy
- jpa no session
- 자바 필터
- 스프링시큐리티
- IOC
- Atomicity
- fetch join
- 스프링
- 그래프큐엘
- 토비의 스프링
- java predicate
- 기능적 요구사항
- 동적파라미터
- 정적팩토리메서드
- open-session-in-view
- 수정자주입
- 소프트웨어의 품격
- 스프링부트 도커
- 스프링 포매터
Archives
- Today
- Total
공부기록
아이템24. 멤버클래스는 되도록 static으로 만들라. 본문
반응형
아이템24. 멤버클래스는 되도록 static으로 만들라.
중첩클래스
- 다른 클래스 안에서 정의된 클래스.
- 자신을 감싼 바깥 클래스에서만 쓰여야한다. 그 외 쓰임새가 있다면 톱레벨 클래스로 선언할 것.
- 정적 멤버 클래스, (비정적)멤버클래스, 익명 클래스, 지역 클래스 등이 있다.
정적 멤버 클래스
- 다른 클래스 안에 선언되고, 바깥 클래스의 private 멤버에도 접근 가능을 제외하면 일반 클래스와 똑같음.
- 개념상 중첩 클래스의 인스턴스가 바깥 인스턴스와 독립적으로 존재할 수 있다면 정적멤버클래스로 만들 것. (비정적 멤버 클래스는 바깥 인스턴스 없이는 생성할 수 없다)
결론.
- 메서드 밖에서도 사용해야 하거나 메서드 안에 정의하기엔 너무 길다면 멤버클래스로 만들 것.
- 멤버클래스의 인스턴스 각각이 바깥 인스턴스를 참조한다면 비정적으로 만들 것.
- 그렇지 않으면 정적으로 만들 것.
- 중첩클래스가 한 메서드 안에서만 쓰이면서, 그 인스턴스를 생성하는 지점이 단 한곳이고 해당 타입으로 쓰기에 적합한 클래스나 인터페이스가 이미있다면 익명 클래스로 만들것.
- 그렇지 않으면 지역클래스로 만들 것.
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 프록시 패턴에 대해 알아보자 (0) | 2020.06.24 |
---|---|
코드의 점진적인 발진으로 동적파라미터를 이해해보자 (1) | 2020.03.20 |
아이템 17. 변경가능성을 최소화하라. (0) | 2019.12.11 |
아이템15. 클래스와 멤버의 접근권한을 최소화하라. (0) | 2019.12.01 |
아이템12. toString을 항상 재정의하라 (0) | 2019.12.01 |