Skip to main content Link Search Menu Expand Document (external link) Copy Copied

객체지향 프로그래밍은 객체에 데이터와 프로시저를 함께 포함하는 방식으로, 객체와 객체 간의 상호작용은 프로시저를 호출하는 방식으로 이루어진다.


객체란 무엇인가?

객체는 특정한 기능을 제공하는 단위로, 그 기능에 의해 정의된다. 객체와 객체 간의 상호작용은 메시지를 주고받는 것으로 표현할 수 있다.


캡슐화란?

캡슐화는 데이터와 그에 관련된 기능을 하나로 묶는 것을 말한다. 이 과정에서 객체는 내부에서 어떻게 기능을 구현했는지 외부에 숨긴다. 캡슐화는 다음과 같은 장점을 가진다:

  1. 요구사항이 변경됐을 때, 내부 구현만 변경하면 되므로, 코드 전파를 최소화할 수 있다.
  2. 기능의 의도가 명확해지므로, 코드 이해도를 높일 수 있다.

캡슐화를 위한 규칙

캡슐화를 지원하기 위한 몇 가지 규칙이 있다:

  1. Tell, Don’t Ask
    • 데이터를 단순히 전달하는 것이 아니라, 데이터를 처리하는 역할을 한다.
  2. Demeter’s Law
    • 메서드에서 생성한 객체의 메서드만 호출한다.
    • 파라미터로 받은 객체의 메서드만 호출한다.
    • 필드로 참조하는 객체의 메서드만 호출한다.