객체 지향

객체 지향 프로그래밍이란 컴퓨터 프로그램을 여러 독립적인 부품들의 조합, 즉 객체들의 유기적인 협력과 결합으로 구성하고자 하는 컴퓨터 프로그래밍의 한 방법론을 의미합니다.

일반적으로 객체 지향을 설명할 때 ‘실제 세상에 존재하는 객체와 소프트웨어 객체가 대응한다’고 말하곤 합니다. 하지만 이는 그 비유가 객체지향의 특성을 학습하는데 효과적이기 때문이지 객체지향의 목표가 실세계를 모방하는 것을 뜻하는 것은 아닙니다.

객체 지향적인 코드를 작성하기 위해서 우선 다음 두 가지를 신경 써 봅시다. 책임협력

책임과 협력

책임

객체가 유기적인 협력 내에서 맡고 있는 임무나 역할을 의미합니다. 객체지향 설계는 적절한 객체에게 적절한 책임을 할당하는 것에서 시작합니다.

협력

객체는 자신 스스로 해결하지 못하는 문제와 마주치면 그 문제를 해결할 수 있는 객체에게 도움을 요청합니다. 요청을 받은 객체는 자신에게 주어진 책임을 다해서 문제를 해결한뒤 요청에 응답합니다. 이런 과정은 객체 간의 협력 내에서 보통 연쇄적으로 발생합니다.

객체 지향 프로그래밍의 장점

객체 지향적으로 코드 개선해보기

1. 미션의 요구사항을 기능별로 상세히 나눠보기

어떤 문제가 주어졌다면 그 문제를 해결하기 위해 무엇이 필요한지 분석하는 것은 중요합니다. 문제를 하나의 덩어리로 생각한다면 어떻게 해결할지 막막할 때가 많지만 잘게 나눈 기능들을 하나씩 구현한 뒤 서로 협력하게 만들면 신기하게도 문제가 해결됩니다.

2. 나눈 기능들이 어떤 객체의 책임인지 생각해보기