GRASP 패턴 - CREATOR

less than 1 minute read

GRASP 패턴 중 Creator 패턴에 대해 알아보자

Creator 패턴

하나 이상의 객체들이 서로 협력하여 하나의 큰 책임을 수행하는 객체가 될것이다. 즉 책임을 수행하는 객체를 누군가 생성해줘야 할것이다. 그렇다면 객체의 생성 책임을 갖는 객체는 어떤 기준으로 정해야될것인가?

객체를 생성할 책임을 갖는 객체

서로 협력 관계에 있는 객체들을 조합하여 생성하기 위해서는 당연한 소리지만 협력관계에 있는 객체들을 모두 알고 있어야된다. 즉 이미 갖고 있는 의존성에 따라서 생성 책임을 할당하는 것이 중요하다.

어떤 방식으로든 생성되는 객체와 의존성을 갖는 객체에 생성 책임을 맡기는 것, 이미 존재하는 의존성이기 때문에 low coupling을 유지할 수 있다.

여기서 의존성을 갖고 있는 객체를 상황으로 설명해보자면 아래 4가지로 설명할 수 있겠다.

  1. 생성할 객체를 멤버로 변수로 갖고 있는 경우
  2. 어떠한 방식으로든 참조하고 있는 경우 ( 파라미터로 받거나, 전역 변수로 갖고 있거나, 생성자로 받거나 )
  3. 책임의 수행 관점에서 꼭 협력이 필요할 경우
  4. 생성할 객체의 생성에 필요한 데이터를 갖고 있는 경우

Creator 패턴을 쉽게 사용하기 위한 pattern

**factory, **builder, 등 클래스명을 본적이 있다면 Creator 패턴을 사용하기 쉽게 만든 클래스들이다.

객체의 생성이 복잡할 경우 또는 협력에 참여하는 객체들이 많을 경우 Factory, builder 와 같은 패턴을 이용하여 사용하기 쉽게 포장한다.

Updated: