[객체지향] 캡슐화 - 객체의 값을 꺼내지 말고 메시지를 던져라
객체지향을 학습하다보면 캡슐화 라는 용어가 나온다. 위키를 보면 캡슐화의 정의는 다음과 같다. 객체의 속성(data fields)과 행위(메서드, methods)를 하나로 묶고 실제 구현 내용 일부를 외부에 감추어 은닉한다. 얼핏보면 무슨 말인지 이해가 잘 되지 않지만, 핵심은 내부 구현을 외부에 드러내지 않는다는 점이다. 처음 캡슐화란 개념을 접하면 위와 같은 표현은 잘 와닿지 않는다. 그렇다면 어떻게 이를 코드에서 실천할 수 있을까? 가장 간단한 방법은 객체에서 값을 꺼내지 말고, 객체에 메시지를 던지는 방법이다. 이를 코드 레벨에서 적용한다면 로직에 getter를 사용하지 않는다라고 할 수 있겠다. 아래 예시를 보며 확인해보자. 자동차 경주 게임을 구현한다고 하면 우리는 Car 객체를 다음과 같이 ..
2021.01.24