컴퓨터/객체지향_디자인패턴
-
옵저버 패턴컴퓨터/객체지향_디자인패턴 2019. 9. 7. 19:44
- 옵저버 패턴 비유 : 신문사와 정기구독자 중요한 일이 일어났을 때 객체들에게 새소식을 알려준다. 객체들은 계속해서 정보를 받을지 여부를 실행중에 결정할 수 있다. 한 객체(주제)의 상태가 바뀌면 그 객체에 의존하는 다른 객체들(옵저버)한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의한다. 데이터의 주인은 주제 ex. 기상 모니터링 애플리케이션 3가지 구성 요소 : 기상 스테이션(실제 기상 정보를 수집하는 장비) WeatherData 객체(기상 스테이션으로부터 오는 데이터를 추적하는 객체) 현재 기상 조건을 보여주는 기상 디스플레이 - 구현 Subject의 인터페이스(registerObserver, removeObserver, notifyObservers), Observer의 인..
-
-
싱글턴 패턴컴퓨터/객체지향_디자인패턴 2019. 9. 3. 23:24
- 싱글턴이란? 특정 클래스에 대해서 객체 인스턴스가 하나만, 필요할 때만! 만들어질 수 있도록 해주는 패턴 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴 Singleton.getInstance() 와 같은 형태 - 어디서든 무조건 같은 인스턴스가 리턴 제한된 용도로 특수한 상황에서 사용! - 사용예 스레드 풀, 캐시, 대화상자, 사용자 설정, 레지스트리 설정을 처리하는 객체, 로그 기록용 객체, 프린터나 그래픽 카드 같은 디바이스를 위한 디바이스 드라이버 -> 인스턴스를 두 개 이상 만들게 되면 프로그램이 이상하게 돌아간다든가 자원을 불필요하게 잡아먹는 경우, 결과에 일관성이 없어지는 경우 - 필요성 1) 전역변수의 단점 : 애플리케이션이 시작될 때 객체 생성, 그 객체가 자원을 많이 차지..
-
플라이웨이트 패턴컴퓨터/객체지향_디자인패턴 2019. 9. 3. 22:07
- 언제 사용? 어떤 클래스의 인스턴스 한 개만 가지고 여러 개의 "가상 인스턴스"를 제공하고 싶을 때 어떤 클래스의 인스턴스가 아주 많이 필요하지만 모두 똑같은 방식으로 제어할 수 있는 경우 유용 특정 인스턴스만 다른 방식으로 작동하도록 하는 것은 불가능 - 인스턴스 통제, 플라이웨이트 패턴의 근간 언제 어느 인스턴스를 살아 있게 할지 통제 가능 -> 인스턴스 통제 클래스 싱글턴도 만들 수 있고, 인스턴스화 불가로 만들 수도 있다. 불변값 클래스에서 동치인 인스턴스가 단 하나뿐임을 보장할 수 있다. - 필요성 객체를 수 천 개 만드는 대신 인스턴스 한 개만 만들고 모든 가상 인스턴스들의 상태를 클라이언트 객체에서 관리 - 2차원 배열에 저장? 출처 : headfirst design pattern