객체지향의 사실과 오해 - 2-3. 행동이 상태를 결정한다. 은유와 객체
Dongwoongkim
행동이 상태를 결정한다. 객체지향에 갓 입문한 사람들이 가장 쉽게 빠지는 함정은 바로 상태를 중심으로 객체를 설계하는 것입니다. 초보자들은 객체에 필요한 상태가 무엇인지를 먼저 결정하고 그 상태에 대한 행동을 결정하는 것이 일반적인데, 안타깝게도 이러한 순서 (상태 결정 ➡️ 행동 결정)는 설계에 나쁜 영향을 끼친다고 합니다. 그 이유는 세 가지로 설명합니다. 첫째, 캡슐화가 저해된다. 상태에 초점을 맞출 경우 상태가 객체 내부로 깔끔하게 캡슐화 되지 못하고 인터페이스에 그대로 노출되어버릴 확률이 높아집니다. 둘째, 객체를 협력자가 아닌 고립된 섬으로 만들 가능성이 높아진다. 상태를 먼저 고려하는 방식은 협력이라는 문맥에서 멀리 벗어난 채 객체를 설계하게 함으로써 자연스럽게 협력에 적합하지 못한 객체를 ..