'싱글톤' 태그의 글 목록
본문 바로가기
728x90
반응형

싱글톤3

2021.11.14_03.싱글톤패턴구현방법을깨트리는방법 우리가 제대로 만들었지만 사용자가 이상하게 사용하면 깨질 수 있음 public class App{ public static void main(String[] args){ Settings settings = Settings.getInstance(); Settings settings1 = Settings.getInstance(); System.out.println(settings == settings1); } } 지금은 true인데 이것을 false로 나오는것은 어떻게 선언하냐면 리플렉션을 사용 리플렉션 사용하기 public class App{ public static void main(String[] args) throws NoSuchMethodException{ Settings settings = Set.. 2021. 11. 14.
2021.11.14_02.멀티쓰레드환경에서안전하게구현하는방법 싱글톤패턴 구현하는 방법 1 이전 방법은 멀티에 최적화 되지 않음 멀티의 환경에서 두개가 new를 실행하면 달라지니까 싱글톤이 아니게됨 동기화 시키기 public class Settings{ private static Settings instance; private Settings(){} public static synchronized Settings getInstance(){ if(instance == null){ instance = new Settings(); } return instance ; } } 동시에 못들어가게하니까 가능 하지만 동기화 처리 작업 때문에 성능에 불이득이 생기는 단점이 생김 락을 걸어서 하기 때문에 그 쓰레드만 들어가고 해제하고 다른 쓰레드 처리하니까 성능 부하 생김 안전하지만.. 2021. 11. 14.
2021.11.11_싱글톤패턴1-싱글톤패턴을가장단순히구현하는방법 싱글톤 패턴 어떤 클래스의 인스턴스를 오직 하나만 그하나만 존재하는 인스턴스에 접근할 수 있는 글로벌하게 액세스할 수있는 방법 제공해야함 Settings settings = new Settings(); settings settings1 = new Settings(); 두개를 비교하면 다르다 싱글톤을 사용하려면 new를 사용하면 안된다. 그렇게 하려면 아래와 같이 한다. public class Settings{ private Settings(){} } 이러면 클래스 밖에서 사용 못함 밖에서 인스턴스 못만들어서 Settings안에서 글로벌 접근 가능하게 함 public class Settings{ private Settings(){ } public static Settings getInstance(){ re.. 2021. 11. 11.
728x90
반응형