더북(TheBook)

3.2.7 현실적인 고려 사항

구상화

구상화 Reification는 객체가 아닌 뭔가를 객체로 승격하거나 격상하는 행위다. 행동 양식을 구상화할 때 저장하거나 전달하거나 변환하는 작업이 가능하다. 구상화는 복잡성을 다소 감수하는 비용으로 시스템의 유연성을 높인다.[52]

다음과 같은 여러 디자인 패턴[54] 에서 구상화를 이용한다.

 

상태 패턴 : 상태 기계를 인코딩한다.

명령 패턴 : 요청을 명령 객체로 인코딩한다. 이런 악취를 허용하는 예외는 명령 패턴이 메서드 요청을 객체로 만드는 데 사용될 때다.

전략 패턴 : 사용하는 연산에서 프로시저를 매개변수화한다.

 

다시 말해, 설계 품질을 개선할 목적에서 더 나은 재사용 가능성, 유연성, 확장 가능성을 위해 비객체를 객체로 승격하는 수단으로 주의 깊게 설계할 때 이는 악취가 아니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.