객체(Object)

박핸지·2021년 11월 10일
0

2.1 객체의 핵심은 기능을 제공하는 것

객체의 구성 : 데이터 + 데이터를 조작하는 프로시저(오퍼레이션, 메서드, 함수)

객체를 정의할 때 사용되는 것은 객체가 제공해야 할 기능이며, 객체가 내부적으로 어떤 데이터를 갖고 있는 지로는 정의되지 않는다.

예를 들어, 소리 크기 제어 객체가 있다고 하고, 이 객체가 제공하는 기능은 다음과 같다.

  • 소리 크기 증가
  • 소리 크기 감소
  • 음소거

이 객체가 내부적으로 소리 크기를 어떤 데이터 타입 값으로 보관하는지는 중요 X
실제로 객체가 어떻게 소리 크기를 증가/감소 시키는지 알 수 X
단지 세 가지의 기능을 제공한다는 것이 중요하다.

2.2 인터페이스와 클래스

객체는 객체가 제공하는 기능으로 정의된다고 했는데, 객체가 제공하는 기능을 보통 '오퍼레이션'이라고 한다. 객체가 제공하는 모든 오퍼레이션 집합을 객체의 '인터페이스'라고 부르며, 서로 다른 인터페이스를 구분할 때 사용되는 명칭이 바로 타입(type)이다. 인터페이스는 객체를 사용하기 위한 일종의 명세나 규칙이라고 생각하면 된다.
인터페이스는 명세서일 뿐, 실제 객체의 구현을 정의하는 것은 클래스(class)이다.

아니 근데 좀 이상한게
오퍼레이션 : 객체가 제공하는 기능
인터페이스 : 객체가 제공하는 모든 오퍼레이션 집합
이렇게 되면
인터페이스 : 객체가 제공하는 모든 (객체가 제공하는 기능) 집합
이게 머선말29...;;

3. 객체의 책임과 크기

객체는 각각의 책임을 갖는다. 예를들면 파일 읽기 객체는 파일에서 데이터를 읽어와 제공하는 책임을 갖는다던지 하는..
이 객체가 갖는 책임을 결정하는 것이 바로 객체 지향 설계의 출발점이다.
객체를 어떻게 구성하느냐에 규칙같은게 있는 건 아니지만 단 하나의 확실한 규칙이 존재하는데, 그 규칙은 바로

객체가 갖는 책임의 크기는 작을수록 좋다.
= 객체가 제공하는 기능의 개수가 적을수록 좋다.

는 것이다.

왜냐, 한 객체에 기능이 많아지면 절차 지향적인 구조를 갖게 되어버린다..또륵

그리하여 객체의 크기와 관련된 원칙이 있다. 그것은 바로
단일 책임 원칙 : 객체는 단 하나의 책임만을 가져야 한다.

profile
핸지의 메모장ㅎㅅㅎ

0개의 댓글

관련 채용 정보