일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java
- 백준
- backtracking
- BOJ
- 문자열
- Lv.1
- Lv.2
- algorithm
- dfs
- 아기상어
- baekjoon
- BFS
- Permutation
- recursive
- programmers
- PS
- dynamic programming
- SW역량테스트
- ProblemSolving
- Today
- Total
목록개발 관련/Effective Java (2)
berry
public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 class Point{ public double x; public double y; } >> 위와 같은 클래스는 직접 필드에 접근할 수 있으므로 캡슐화의 이점을 살릴 수 없다. 따라서 모든 필드를 private으로 바꾸고 public 접근자의 getter/setter를 추가한다. 정리 : public 클래스는 절대 가변 필드를 노출해선 안된다. 불변 필드라면..크게 상관없긴 하다. package-private 클래스나 private 중첩 클래스는 불변 필드를 노출하는게 나은 경우도 있다. 변경 가능성을 최소화하라 >> 불변 클래스를 정의할 때 다섯 가지의 규칙을 따라야 한다. 객체의 상태를 변경하는 메서드를 제공하지 않는다. 클래..
*인스턴스화를 막으려거든 private 생성자를 사용하라 - 인스턴스를 만들어 사용하려는 용도의 클래스가 아니여도(유틸리티만을 담은 클래스) 생성자를 명시하지 않으면 컴파일러가 public타입의 생성자를 자동생성함. - private생성자를 추가하면 컴파일러가 기본으로 생성하는걸 막을 수 있음. *자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 - 여러 인스턴스를 지원해야하고 원하는 자원을 사용할 수 있게 해야 유연하게 여러 상황에 쓰일 수 있음. - 인스턴스를 생성할 때 생성자에 필요한 자원을 넘겨주자. ex) public class SpellChecker{ private final Lexicon dictionary; public SpellChecker(Lexicon dictionary){ thi..