
레베카 워프스브록 - 객체지향 패러다임은 지식을 추상화하고 추상화한 지식을 객체 안에 캡슐화함으로써 실세계 문제에 내재된 복잡성을 관리하려고 한다. 객체를 발견하고 창조하는 것은 지식과 행동을 구조화하는 문제다.
객체, 그리고 소프트웨어 나라
- 객체의 특성
- 상태(state)
- 행동(behavior)
- 식별자(identity)
- 객체와 객체 사이의 의미 있는 연결을 링크(link) 라고 한다.
- 객체와 객체 사이에는 링크가 존재해야만 요청을 보내고 받을 수 있다.
- 객체가 취하는 행동은 객체 자신의 상태를 변경시킨다. 객체의 행동에 의해 객체의 상태가 변경된다는 것은 행동이 부수 효과(side effect)를 초래한다는 것을 의미한다.
- 여기서의 부수효과는 좋은 것도 나쁜것도 아닌 당연한 원리. 메소드를 호출함으로써 멤버 프로퍼티의 값을 변화시킨다 -> Side Effect
메시지를 통한 앨리스와 음료 사이의 협력 관계
-------------------> (앨리스) -------------------> 음료
[drinkBeverage()] [drunken(quality)]
식별자(Identifier)
- 값(value type): 숫자, 문자열, 날짜, 시간, 금액 등과 같이 변하지 않는 양을 모델링한다. 흔히 값의 상태는 변하지 않기 때문에 불변 상태(immutable state) 를 가진다고 말한다.
- 상태를 이용해 두 값이 같은지 판단할 수 있는 성질을 동등성(equality) 라고 한다.
- 객체(reference type): 시간에 따라 변경되는 상태를 포함하며, 행동을 통해 상태를 변경한다. 따라서 객체는 가변 상태(mutable state) 를 가진다고 말한다.
- 두 객체의 상태가 다르더라도 식별자가 같다면 두 객체를 같은 객체로 판단할 수 있다. 이처럼 식별자를 기반으로 객체가 같은지를 판단할 수 있는 성질을 동일성(identical) 이라고 한다.
식별자란 어떤 객체를 다른 객체와 구분하는데 사용하는 객체의 프로퍼티다. 값은 식별자를 가지지 않기 때문에 상태를 이용한 동등성(equality) 검사를 통해 두 인스턴스를 비교해야 한다. 객체는 상태가 변경될 수 있기 때문에 식별자를 이용한 동일성(identical) 검사 를 통해 두 인스턴스를 비교할 수 있다.
기계로서의 객체
- 객체의 상태를 조회하는 작업을 쿼리(query)라고 한다.
- 객체의 상태를 변경하는 작업을 명령(command)이라고 한다.
'객체지향의 사실과 오해' 카테고리의 다른 글
객체지향의 사실과 오해 3장 정리 (0) | 2022.05.17 |
---|---|
객체지향의 사실과 오해 1장 정리 (0) | 2022.05.08 |