본문 바로가기

디자인패턴2

[헤드퍼스트 디자인패턴 2장] 옵저버 패턴 2장 - 옵저버 패턴 옵저버 패턴이란? 옵저버패턴 클래스 다이어그램 신문사 + 구독자 = 옵저버 패턴 신문사는 주제(subject), 구독자를 옵저버(observer)라고 부른다. 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에 연락이 가고 자동으로 내용이 갱신되는 방식으로 다대다 의존성을 정의합니다. 옵저버 패턴은 보통 주제 인터페이스와 옵저버 인터페이스가 들어있는 클래스 디자인으로 구현합니다. 옵저버로 등록하거나 탈퇴하고 싶은 경우 Subject인터페이스에 있는 메소드를 사용합니다. 옵저버가 될 가능성이 있는 객체는 Observer인터페이스를 구현해야합니다. 주제의 상태가 바뀌었을 때 호출되는 update() 메소드만 구현 옵저버에는 데이터를 보내주는 푸시(push) 방식과 옵저버가 데이터를.. 2022. 6. 15.
[헤드퍼스트 디자인패턴 1장] 전략패턴 1장 - 전략패턴 요구사항 : 오리 시뮬레이션 게임 SimUduck 오리 시뮬레이션 게임 이 게임에는 헤엄도 치고 꽥꽤 소리도 내는 다양한 오리가 등장 추후 요구사항이 변경되어 날 수 있는 기능이 추가되어야 함 또 다른 요구사항으로 소리를 내지 못하는 오리라던지, 날지 못하는 오리 등이 추가 됨 문제를 명확하게 파악하기 달라지는 부분을 찾아서 영향을 주이 않도록 캡슐화 한다. 바뀌는 부분과 그렇지 않은 부분 분리하기 해결 방법 1 : 상속(슈퍼클래스)을 통한 해결 클래스 다이어그램 요구사항이 추가되기 전 클래스 다이어그램 요구사항 변경으로 인해 추가된 클래스 다이어그램 모든 오리가 꽥꽥 소리를 내고, 헤엄칠 수 있다 생각하여 이런 특성을 모두 슈퍼클래스에서 구현 해당 슈퍼클래스를 상속받은 서브클래스들은 .. 2022. 6. 13.