본문 바로가기

코딩/Software Architecture

[GoF Design Pattern] Factory Method, Observer

* Factory Method

Factory Method: 객체 생성을 위한 디자인 패턴

                             객체 생성에 필요한 과정을 템플릿처럼 정해 놓고 각 과정을 다양하게 구현

장점: 구체적으로 생성할 클래스를 유연하게 정할 수 있음. 객체 생성에 대한 인터페이스와 구현의 분리

Factory: Item을 생성해주는 절차를 정해줌

Item : 생성될 아이템을 동일한 타입으로 처리할 수 있도록 해줌

(Factory, Item : 생성에 대한 인터페이스)

ItemFactory: 아이템 객체 생성을 위한 각 절차를 구체적으로 구현

아이템 생성 개수가 정해져 있어 초과하면 생성 X

* Observer

Observer: 어떤 상태가 변경됐을 때 이 상태 변경에 관심이 있는 관찰자들에게 알려 주는 패턴

어떤 대상(아래 그림에선 Game) 이 변경됐을 때 그 변경을 주변 관찰자에게 알려줌.

Game: Game 에 참가하는 Player 객체를 여러 개 가질 수 있음.

FirstGame에서 Player를 순회하면서 각 게임의 결과를 넣고, Player에서 그 결과를 판단하는 관계를 맺을 수 있다.

게임의 종류를 변경하거나 Player의 종류를 변경해도 관계가 유지된다!