디자인패턴7 [디자인 패턴] 싱글턴(Singleton) 패턴 Goal 싱글턴(Singleton) 패턴을 이해한다. 싱글턴(Singleton) 패턴 싱글턴(Singleton) 패턴은 인스턴스가 오직 하나만 생성되는 것을 보장하고 어디에서는 인스턴스에 접근할 수 있도록 하는 디자인 패턴 ※싱글턴은 하나의 원소만을 가지는 집합을 의미 Singleton : 하나의 인스턴스만을 생성하는 책임이 있으며 getInstance() 메서드를 통해 모든 클라이언트에게 동일한 인스턴스를 반환하는 작업을 수행 싱글톤 클래스는 생성자를 Private으로 함으로써 외부에서 객체를 생성할 수 없도록 하고 instance를 전역(Static)으로 구현한다. 외부에서는 GetInstance() 함수를 사용하여 접근할 수 있도록 한다. ▷싱글턴 패턴 장점 고정된 메모리영역을 얻으면서 한 번의 n.. 2021. 5. 13. [디자인 패턴] 옵저버(Observer) 패턴 옵저버 패턴 (Observer Pattern) 한 객체의 상태가 변경되면 그 객체를 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(One - to - Many) 의존성을 정의 분산 이벤트 핸들링 시스템을 구현할 때 사용 Observer : 데이터의 변경을 통보받는 인터페이스 Subject : ConcreteObserver 객체를 관리하는 요소 ConcreteSubject : 변경 관리 대상이 되는 데이터가 있는 클래스. Subject의 Notify를 호출함으로써 ConcreteObserver 객체에 변경을 통보 ConcreteObserver : ConcreteSubject의 변경을 통보받는 클래스. Observer 인터페이스의 Update() 메서드를 구현함으로써 변경을 .. 2021. 4. 30. [디자인 패턴] 전략(Strategy) 패턴 전략 패턴(Strategy Pattern) 행위를 클래스로 캡슐화하여 동적으로 행위를 자유롭게 해주는 패턴 객체의 행위를 동적으로 변경하고 싶은 경우 직접 행위를 수행하지 않고 전략을 바꾸어주기만 함으로써 행위를 유연하게 확정하는 방법 예시(Example) *Class Diagram 부모클래스 (Duck) 과 자식클래스 (MallardDuck, RedheadDuck) *Example Code Question 만약 RedheadDuck이 울음소리를 내지 못한다면? -> RedheadDuck의 Quack()을 수정해야함 만약 MallardDuck이 날지 못한다면? -> MallardDuck의 fly()를 수정해야함 문제점 기존코드를 수정해야하 하므로 OCP에 위배됨. 클래스가 확장될 경우 중복 메소드가 생길.. 2021. 4. 26. 이전 1 2 다음