yepdi / TIL

Today I Learn
0 stars 0 forks source link

오브젝트 - 책임 할당하기 #9

Open yepdi opened 2 years ago

yepdi commented 2 years ago

책임 주도 설계

데이터보다는 행동을 먼저 결정하라

이 객체가 수행해야 하는 책임은 무엇인가 를 결정한 후에 이 책임을 수행하는데 필요한 데이터는 무엇인가를 결정한다

협력이라는 문맥 안에서 책임을 결정하라

책임 할당을 위한 GRASP 패턴

GRASP (General Responsibility Assignment Software Pattern)

도메인 개념에서 출발하기

책임을 할당받을 객체들의 종류와 관계에 대한 유용한 정보를 제공할 수 있으면 충분하다

정보전문가에게 책임을 할당해라 (Information Expert)

높은 응집도와 낮은 결합도 (Low Coupling, High Cohesion)

예매하라 -> Screening -> 가격을 계산하라 -> Movie -> 할인 여부를 판단하라 -> DiscountCondition

예매하라 -> Screening -> 가격을 계산하라 -> Movie -> 할인 여부를 판단하라 -> DiscountCondition

창조자에게 객체 생성 책임을 할당하라 (Creator)

어떤 객체에게 객체 생성 책임을 할당해야 하는지. 어떤 방식으로든 생성되는 객체와 연결되거나 관련될 필요가 있는 객체에 해당 객체를 생성할 책임을 맡기는 것

변경의 이유에 따라 클래스 분리

다형성을 통해 분리하기 (PolyMorphism)

변경으로부터 보호하기 (Protedcted Variations)

변경과 유연성