728x90
창조자 패턴(Creator)
- 문제 - 새로운 인스턴스를 생성하는 책임을 어떤 객체에게 할당할 것인가?
- 해결 방법 - 아래 조건 중 한 가지라도 만족한다면, A의 인스턴스를 생성할 책임을 B에게 할당하라
- B가 A를 포함하거나, 참조한다.
- B가 A를 기록한다.
- B가 A를 긴밀하게 사용한다.
- B가 A를 초기화하는데 필요한 정보를 알고 있다.
생성할 책임을 맡게 될 객체는 생성되는 객체와 밀접한 관계를 맺고 있는 객체이다.
EX) 상영이 예매의 생성을 책임을 지는게 좋은 이유

- 상영은 창조자 패턴 중 2가지 조건을 만족한다.
- 영화는 창조자 패턴 중 1가지 조건을 만족한다.
- 영화보다는 상영이 예매를 생성할 책임을 할당하는 게 더 좋은 선택이다(상영이 2가지 조건을 만족하기 때문)
낮은 결합도 패턴(Low Coupling)
결합도는 어느 한 객체가 다른 객체에 의존하는 정도를 의미한다. 그리고 책임을 할당할 때는 전체적으로 결합도가 낮아지는 방향으로 책임을 할당해야 한다.
- 문제 - 어떻게 낮은 의존성을 유지하고, 변경에 따른 영향을 줄이면서, 재사용성을 높일 수 있을까?
- 해결 방법 - 설계의 전체적인 결합도를 낮게 유지할 수 있도록 책임을 할당하라
EX) 상영이 예매의 생성을 책임을 지는 게 좋은 이유

- 상영과 예매 사이에는 이미 관계가 존재하고 있다.
- 상영에 예매를 생성하는 책임을 할당하더라도 새로운 관계를 추가할 필요 X
- 상영과 예매 사이에는 관계가 존재하지 않는다.
- 상영에 예매를 생성하는 책임을 할당하더라도 새로운 관계를 추가해야 한다.(결합도 증가)
낮은 결합도를 유지하면, 코드를 더 쉽게 수정할 수 있다.
참고 창조자 패턴에 1~3번 항목은 낮은 결합도 패턴이며, 이미 결합되어 있는 후보에게 책임을 할당하라고 가이드하고 있으며, 마지막 항목은 정보 전문가에게 책임을 할당하라고 말하는 것이다.
728x90
'오브젝트' 카테고리의 다른 글
| Ch04. 책임 할당하기 - 다형성 (0) | 2024.10.05 |
|---|---|
| Ch04. 책임 할당하기 - 설계 트레이드오프(높은 응집도) (2) | 2024.10.05 |
| Ch04. 책임 할당하기 - 정보와 책임 할당(정보 전문가) (0) | 2024.10.05 |
| Ch03. 객체지향 기본 원칙 - 표현적 차이 줄이기 (0) | 2024.10.01 |
| Ch03. 객체지향 기본 원칙 - 책임 주도 설계 (0) | 2024.10.01 |