본문 바로가기

개발/디자인패턴

(2)
Observer(옵저버) 패턴 의도 옵저버(Obsever) : 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 (One - To - Many) 의존성을 정의합니다. -HeadFirst Design Pattern 구조 참여객체 Subject(주제) : 감시자(Obsever)들을 알고 있는 주체. 임의 개수의 감시자(observer) 객체는 주체를 감시할 수 있습니다. 주체는 감시자 객체를 붙이거나 뗴는 데 필요한 인터페이스를 제공합니다. Observer(감시자) : 주체에 생긴 변화에 관심 있는 객체를 갱신하는 데 필요한 인터페이스를 정의합니다. 이로써 주체의 변경에 따라 변화되어야 하는 객체들의 일관성을 유지합니다. ConcreteSubject : ConcreteObse..
전략(Stragety) 패턴 의도 전략(Strategy) 동일 계열의 알고리즘의 군을 정의하고, 각각의 알고리즘을 캡슐화하여, 이들을 상호 교환이 가능하도록 만드는 패턴입니다. 알고리즘을 사용하는 사용자와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있게 합니다. -GoF의 디자인 패턴- 구조 참여객체 Strategy: 제공하는 모든 알고리즘에 대한 공통의 오퍼레이션들을 인터페이스로 정의한 다. Context 클래스는 ConcreteStrategy 클래스에 정의한 인터페이스를 통해서 실제 알고리즘을 사용한다. ConcreteStrategy: Strategy 인터페이스를 실제 알고리즘으로 구현한다. Context: ConcreteStrategy 객체가 무엇인지 구체화한다. 즉, Strategy 객체에 대한 참 조자를 관리하고, ..