[이펙티브 자바] 아이템 16.public 클래스에서는 public 필드가 아닌 다른 접근자 메서드를 사용하라
개발을 하다보면 인스턴스 필드들만 모아놓는 목적만 가진 아래와 같은 클래스를 구성하는 경우가 있다. public class Point{ public double x; public double y; } 이유는, 이러한 클래스 형태로 구현했을 때는 클라이언트에서 필드에 직접 접근할 수 있으므로 캡슐화의 이점을 제공하지 못한다는 단점이 있다. 또한 좀 더 알아보면, API를 수정하지 않고는 내부 표현을 바꿀 수 없다. public 필드로만 구성되어 있기 때문에 내부 표현을 변경하기 위해서는 API의 필드를 변경해야 한다. (메소드가 존재할 땐 파라미터에 따라 내부 표현이 변경 가능) 불변식을 보장할 수 없다. 클라이언트에서 직접적으로 필드에 접근하고 있으므로 클라이언트에 의해 언제든지 변경이 가능하다. 외부에..
Java/Effective Java
2020. 8. 18. 13:34
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- junit
- 팩토리 메소드 패턴
- 정적팩터리메서드
- 인프런
- java8
- mustache
- 빈 순환 참조
- JPA
- flatMap
- 복사 팩토리
- java
- effectivejava
- 점층적 생성 패턴
- ifPresent
- 김영한
- 이펙티브 자바
- Spring
- 자바8
- jdk버전
- package-private
- springboot
- try with resources
- try catch finally
- @Lazy
- 이펙티브자바
- 스프링부트
- 생성자
- Effective Java
- 빌더 패턴
- 연관관계
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |
글 보관함