본문 바로가기

전체 글26

[디자인 패턴] 옵저버(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.