# 객체 지향 다시 짚고 넘어가기

# 붕어빵으로 밖에 설명할 수 없을까?

객체

  • 처리되어야 할 여러 작업들을 각자 맡아 수행하는 수행원

  • 적절한 수행을 위해 각자 알맞은 상태와 행위를 갖는다.

    • 연필이 무언갈 그리기 위해선 가늘기, 색이라는 상태와

      점 찍기라는 행위를 가진다.

  • 현실의 객체와 달리 SW내 객체는 모두 자신의 역할을 능동적으로 수행하는 존재다.

  • 붕어빵으로 비유하자니 좀 감이 안와서 연필로 비유하자면

    점을 찍을 수 있는 연필이 객체라고 볼 수 있겠다.

객체의 자율성

  • 각각의 객체는 독립적으로 존재하여야 한다.
  • 최종적으로 자신의 상태를 변경하는 것은 스스로여야 한다.
    • 현실의 연필은 인간에 의해 가늘기가 변경되지만

      SW내 연필은 더 가늘게 하는 행위를 요청받아 가늘기를 변경시킨다.

    • 이를 위해 객체는 자신의 상태를 감추는데

      약 가루를 캡슐에 감춘 모습에 비유하여 캡슐화라고 한다.

  • 이러한 특성이 보장되기에 객체는 자율적으로 활동할 수 있다.

# 붕어빵과 붕어빵틀 그만 듣고 싶어!

객체 지향

  • 객체가 서로 상호작용 하면서 작업을 수행하도록 하는 것.

  • 작업을 위해 어떤 행위들이 요구되는지 우선 파악한 후

    해당 행위를 수행할 객체를 결정한다.

  • 예시 ) 도서 대출 프로그램

    • 행위 : 도서 현황 관리, 도서 대출/반납 처리 등
      1. 유저는 사서 객체에게 A 도서 반납 처리 행위를 요청한다. ( 메시지 호출 )

      2. 사서 객체는 도서 현황 관리 객체에게 유저의 대출 정보 중

        대출 상태인 A 도서가 있는지 확인을 요청한다.

      3. 도서 현황 관리 객체는 내부 DB에 존재 여부를 확인하고

        확인 결과를 사서 객체에게 반환한다.

      4. 사서 객체는 확인 결과를 바탕으로 처리한다.


참고 포스트