DEV book/객체지향의 사실과 오해

DEV book/객체지향의 사실과 오해

[OOP] 객체지향의 사실과 오해 5, 6장 - 자율적인 객체와 도메인 모델링

책임과 메시지 객체지향 패러다임이 전통적인 패러다임에 비해 우월한 이유는 뭘까? 객체지향에서는 명확한 책임을 가진 객체들이 협력에 참여해야 한다. 그러나 책임은 ‘어떻게’가 아닌 ‘무엇을’ 이라는 형태로 나타나야 하며, 객체가 책임을 수행하는 방식의 자율성을 보장해주어야 한다. 객체는 메세지를 전송하여 다른 객체에게 접근할 수 있다. 이 메시지에 추가적인 정보가 필요하면 인자(argument)로 이를 표현할 수 있다. 메서드 객체에게 메시지를 전송하면 결과적으로 메시지에 대응되는 메서드가 실행된다. 어떤 메서드를 호출할 지 실행 시간에 결정할 수 있는 것은 객체지향의 핵심이다. 다형성 다형성은 서로 다른 타입에 속하는 객체가 동일한 메시지를 수신할 경우, 서로 다른 메서드로 이를 처리할 수 있는 메커니즘..

DEV book/객체지향의 사실과 오해

[OOP] 객체지향의 사실과 오해 3, 4장 리뷰 - 역할, 책임, 협력

타입과 추상화 개념 개념(concept)이란 공통점을 기반으로 객체들을 하나로 묶기 위한 그릇이다. 개념을 이용하면 서로 다른 객체를 여러 그룹으로 분류할 수 있다. 이렇게 분류된 그룹 안에 속한 하나의 객체를 그 개념의 인스턴스 (instance) 라고 한다. 즉, 객체는 특정 개념에 적용되었을 때 ‘인스턴스’라고 부를 수 있다. 따라서 우리가 많은 사물들의 공통점을 통해 개념을 확립하고, 분류하였을 때 비로소 하나의 객체는 인스턴스로 사용될 수 있는 것이다. 개념은 세 가지 관점으로 해석할 수 있다. 심볼 (symbol) - 개념을 지칭하는 명칭 내연 (intension) - 개념의 정의 외연 (extension) - 개념에 속하는 모든 객체의 집합 타입(type) 객체를 분류함으로써 우리는 객체들의..

DEV book/객체지향의 사실과 오해

[OOP] 객체지향의 사실과 오해 1, 2장 리뷰 - 객체지향의 본질

협력하는 객체들의 공동체 객체지향이라는 예술은 적절한 객체에게 적절한 책임을 할당하는 것에서 시작된다. 객체지향 설계를 하기 전, 객체의 역할을 확립하자. 객체의 역할은 아래와 같은 특징을 가진다. 여러 객체가 동일한 역할을 수행할 수 있다. 하나의 객체가 여러 역할을 수행할 수 있다. 역할은 대체 가능성을 의미한다. 객체는 책임을 다하는 방법을 선택할 수 있다. 협력하는 객체의 덕목 다른 객체의 요청한 것 (what)에 협력적으로 응답한다. 객체가 어떻게 (how) 응답하는 지에 대해 충분히 자율적이다. 객체는 자율적이기 위해서 어떤 행동(behavior)을 하기 위해 필요한 상태(state)를 알고 있어야 한다. 예를 들어, 바리스타는 커피 제조를 위한 방법을 기억하는 상태에 있고, 그렇기 때문에 이..

MINGYUM
'DEV book/객체지향의 사실과 오해' 카테고리의 글 목록