목차

2-1 ) 협력, 객체, 클래스 ( p 40 ~ 41)

객체지향이란? 이런 말은 처음 객체지향 언어를 배울때에도, 그 이후에도 애매모호했다.

항상 객체지향이 뭔지 대부분은 면접때에도 물어보곤한다.

💡객체지향이란 ?

객체지향이란 말그대로 객체를 지향하는 것이다.

어떠한 프로그램을 만들기 전에 어떠한 클래스를 구성할지 생각하는 것이 아닌, 객체 자체에 초점을 두면 된다.

  1. 어떤 클래스가 필요한지보다 어떤 객체들이 필요한지 고민한다.

    → 클래스는 공통적인 상태와 행동을 공유하는 개체들을 추상화한것.

    따라서 클래스의 윤곽을 잡기 전, 어떤 객체들이 어떤 상태와 행동을 가지는지 먼저 결정한다면

    설계를 단순하고 깔끔하게 만든다.

  2. 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 바라본다.

    → 객체는 다른 객체에 도움을 주거나 의존하면서 살아가는 협력적인 존재이다.

    따라서 공동체의 일원으로 바라보고 설계하게 된다면, 유연하고 확장 가능하게 만들 수 있다.

    객체들의 모양과 윤곽이 잡히면 공통된 특성과 상태를 가진 객체들을 타입으로 분류하고 이를 기반으로 클래스로 구현하라.


2-2) 도메인의 구조를 따르는 프로그램 구조 ( p 41 ~ 42 )

💡도메인(domain)이란?

소프트 웨어는 사용자가 원하는 어떤 문제를 해결하기 위해 만들어진다.

예로들어 ...