IT/Programming
<Effective Java> RULE 3 private 생성자나 enum자료형은 싱글턴 패턴을 따르도록 설계하라.
싱글턴은 객체를 하나만 만들 수 있는 클래스다. 하지만 클래스를 싱글턴으로 만들면 클라이언트 테스트하기는 어렵다. JDK 1.5이전 싱글턴 구현하는 방법 2가지 1. 정적 멤버 이용 // public final 필드를 이용한 싱글턴 public class Elvis{ public static final Elvis INSTANCE = new Elvis(); private Elvis() {..} public void leaveTheBuilding() {..} } 주의) AccessibleObject, setAccessible 메서드의 도움을 받아 권한 획득한 클라이언트는 리플렉션 기능을 통해 private 생성자를 호출할 수 있다. (규칙 53) 이런종류의 공격을 방어하고자 한다면 두번 째 객체를 생성하라는..
2023. 4. 28. 09:21