본문 바로가기

객체지향의 사실과 오해 1

by 넬준 2022. 5. 10.

객체지향의 사실과 오해 (조영호 지음) 책을 요약/정리한 글입니다.

 

1장 협력하는 객체들의 공동체

 

객체지향의 목표는 실세계를 모방하는 것이 아니라 새로운 세계를 창조하는 것이다.

- 현실세계와 비교해가면서 객체지향에 대한 개념을 설명하는 것이 이해하기 쉽고, 또 많은 부분이 비슷하기 때문에 가능한 일이지만, 프로그램을 실제로 설계하고, 구현하는 실무적인 관점에서는 부적합하다.

 

 

객체지향의 중요한 개념 세 가지는 역할, 책임, 협력이다.

 

 

시스템은 역할과 책임을 수행하는 객체로 분할되고, 시스템의 기능은 객체 간의 연쇄적인 요청과 응답의 흐름으로 구성된 협력으로 구현된다.

 

 

적절한 객체에게 적절한 책임을 할당하는 것에서부터 객체지향은 시작된다.

 

 

객체지향 설계의 묘미는 다른 객체와 조화롭게 협력할 수 있을 만큼 충분히 개방적인 동시에 협력에 참여하는 방법을 스스로 결졍할 수 있을 만큼 충분히 자율적인 객체들의 공동체를 설계하는 데 있다.

 

 

객체지향에서는 데이터와 프로세스를 객체라는 하나의 틀 안에 함께 묶어 놓음으로써 객체의 자율성을 보장한다. 또한 외부의 요청인 메시지와 이 메시지를 처리하는 방법인 메서드를 분리하는 것 또한 객체의 자율성을 높이는 메커니즘이다. (캡슐화)

 

 

객체는 협력을 위해 다른 객체에게 메시지를 전송하고(요청) 다른 객체로부터 메시지를 수신(응답)한다.

 

 

객체지향을 설계할 때 코드를 담는 클래스 중심이 아닌 메시지를 주고받는 객체 중심으로 사고를 전환해야한다. 적절한 역할을 가진 객체 간의 견고한 협력 관계를 구축해야 한다.

 

 

정리

  • 객체지향이란 시스템을 상호작용하는 자율적인 객체들의 공동체로 바라보고 객체를 이용해 시스템을 분  할하는 방법이다.
  • 객체는 시스템을 구현하기 위해 다른 객체와 협력한다. 각 객체는 협력 내에서 정해진 역할을 수행하며 역할은 관련된 책임의 집합이다.
  • 객체는 다른 객체와 협력하기 위해 메시지를 전송하고, 메시지를 수신한 객체는 메시지를 처리하는 데 적합한 메서드를 자율적으로 선택한다.

 

댓글