옵져버 패턴...

말 그대로 감시자다.

그 감시자가 각각의 객체들을 관리하고 매 상황 변화에 따른 정보를 넘겨 줄 수 있다.

즉 하나의 주제에 대하여 1:N 관계를 나타내는 로직에 유용하게 쓸 수가 있다.

헤드 퍼스트 책을 참조한 코드는 이렇다.

날씨에 대한 주체적인 클래스를 중심으로 하여 각각의 상황에 맞는 옵져버를 생성하고 인터페이스 형태로 리스트를 관리하는 방식이다.

팩토리 메소드 패턴.

각기 상황에 적합하게 객체를 대신 생성하는 메소드를 통하여 구현된 팩토리 패턴의 확장형이다.

일반적으로 팩토리 패턴의 경우 상속받은 내용에 대하여 각기 new 키워드를 통하여 객체를 생성하는데

만약 프로그램 구조가 확대대고 할 경우 중개자를 통하여 해당하는 객체를 생성하고

거기에 적합한 작업을 하는데에는 이 구조가 더 적합하다.

샘플 코드는 역시나!! 곰을 주제로 해서 간단히 작성 해 봤다 -_-a

디자인 패턴에 대해 아는 것이 많은 분들이 훈수를 둬 줬으면 좋겠다 ㅠ-ㅠ



Stategy Pattern.

뭐라고 해야 할까..

하나의 기능 집합 상에서 각 모듈마다 행동을 따로 하기에 괜찮은 패턴인듯?

쉽게 말하면 백곰 흑곰이 있는데 백곰 움직임이랑 흑곰 움직임이랑 다르다고 가정하고

곰이라는 공통 특성에서 종별의 움직임이 다르게 나타내게 한다 뭐 그런?

(전문 용어로 말하자면 알고리즘 덩어리를 각기 캡슐화 하여 그 알고리즘을 교환 하면서 프로그램을 동작 시킨다.)

흑곰과 백곰은 곰이라는 클래스를 상속받아 각기 기능을 재정의 한다면 코드 줄 수만 들어난다.

하지만 행동에 대한 집합을 새로이 정의 하고 각 메세지 마다 움직이게 행동 한다면 모듈화에 더 좋지 않을까 싶다.

허접한 예제 이지만 예제를 첨부한다.

혼자 공부하던 것들 기억이 새록 새록 나는 듯.. ㅠ_ㅠ