- Static Factory Method(정적 메소드)
- Builder Pattern
- Singleton
- Private Constructor
- Dependency Injection
- Avoid Unnecessary Object
- Eliminate Object Reference
- Avoid finalizer and cleaner
- try-with-resources
- The gerneral contract when overriding equlas
- Overriding hashCode
- overriding toString
- overriding clone judiciously
- Consider implementing comparable
- 클래스와 멤버의 접근을 최소화해라
- Use Accessor methods
- 변경 가능성을 최소화해라(불변 클래스)
- 상속보단 컴포지션을 사용해라
- 상속을 고려해 설계하고 문서화해라
- 추상 클래스보다 인터페이스를 우선하라
- 인터페이스는 구현하는 쪽을 생각해 설계해라.
- 인터페이스는 타입을 정의하는 용도로만 사용해라
- 태그 달린 클래스보다 클래스 계층구조를 활용해라
- 멤버 클래스는 되도록 static으로 구현해라
- 톱레벨 클래스는 한 파일에 하나만 생성해라.