General/Design Pattern (2) 썸네일형 리스트형 [Design Pattern] Observer Pattern 이 글은 헤드퍼스트 디자인 패턴을 읽고 필자의 방식으로 이해하고 정리한 내용입니다. 개요 옵저버 패턴은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의합니다. (헤드퍼스트 디자인 패턴, 87p) 일대다, One to Many? 개요에 적어놨듯 옵저버 패턴은 일대다 관계를 표현하는 패턴이다. 일대다 관계이다 보니 이를 이해하기 위해 알아야 둬야 할 용어가 등장하는데 바로 Subject와 Observer이다. Subject와 Observer는 신문사와 신문사 구독자와의 관계로 설명할 수 있다. 여기서 신문사에 해당하는 개념이 Subject이고 구독자에 해당하는 개념이 Observer이다. 즉, 신문사가 소식.. [Design Pattern] Strategy Pattern 이 글은 헤드퍼스트 디자인 패턴을 읽고 필자의 방식으로 이해하고 정리한 내용입니다. 개요 Strategy Pattern은 Design Pattern 중 행위(Behavior)에 속하는 패턴이며 정의하자면 다음과 같다. 알고리즘군을 정의하고 캡슐화해서 각각의 알고리즘 군을 수정해서 쓸 수 있게 해 줍니다. 전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있습니다. (헤드퍼스트 디자인 패턴, 64p) 상속은 무엇이 문제일까? "알고리즘을 군을 정의하고 캡슐화해서 각각의 알고리즘 군을 수정해서 쓴다"라는 건 Super Class에 Method를 정의하고 이를 상속받는 Sub Class가 이를 Overrding으로 재사용한다는 측면에서 다를 바 없어 보인다. 만약 Sub Class.. 이전 1 다음