'CS Study/디자인패턴' 카테고리의 글 목록 (21 Page)
본문 바로가기
728x90
반응형

CS Study/디자인패턴84

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.
21.11.07_1.2디자인패턴의세계에오신것을환영합니다 인터페이스는 어떨까요? 6개월 마다 제품을 갱신한다면? 매번 Duck의 서브클래스의 fly()와 quack() 메소드를 일일이 살펴봐야하고 상황에 따라 오버라이드 해야함 슈퍼 클래스에서 fly() 메소드가 들어있는 Flyable 인터페이스를 만듦 이 인터페이스를 구현해서 fly() 메소드를 집어넣을 수 있음 Quackable 이라는 인터페이스를 만들어도 됨 모든 서브 클래스에서 날거나, 꽥꽥 거리는 기능이 있어야하는 것은 아니므로 상속하는것이 올바른 해결책이 아니라는 것을 알 수 있음 서브클래스에서 Flyable, Quackable을 구현하도록 하면, 기능적인 문제는 해결 대신 코드 재사용은 전혀 기대 못함 코드 관리면에서도 별로임 관리 하는 면에서도 또다른 커다란 문제점이 생기게 됨 날 수 있는 오리 .. 2021. 11. 8.
2021.11.06_ 1.1디자인패턴의세계에오신것을환영합니다 원본 https://github.com/3DPIT/android/blob/master/04.HeadFirst_design_patterns/1.%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4%EC%9D%98%EC%84%B8%EA%B3%84%EC%97%90%EC%98%A4%EC%8B%A0%EA%B2%83%EC%9D%84%ED%99%98%EC%98%81%ED%95%A9%EB%8B%88%EB%8B%A4/11/1106/2021.11.06_SimUDuck,%EC%A1%B0%EB%8A%94%EC%83%81%EC%86%8D%EC%97%90%EB%8C%80%ED%95%B4%EC%84%9C%EC%83%9D%EA%B0%81%EC%9D%84%ED%95%B4%EB%B4%85%EB%8B%88%E.. 2021. 11. 8.
728x90
반응형