용어 설명
-
객체
- 인간이 분명하게 인지하고 구별할 수 있는 물리적인 또는 개념적인 경계를 지닌 어떤 것
- 하나의 개별적인 실체로 식별 가능한 물리적인 또는 개념적인 사물은 어떤 것이라도 객체가 될 수 있다.
- 객체의 다양한 특성을 설명하기 위해서 상태, 행동, 식별자를 지닌 실체로 보는 것이 가장 효과적이다.
- 가변 상태를 가진다.
- 동일성 : 두 객체의 상태가 다르더라도 식별자가 같다면 두 객체를 같은 객체로 판단
- 참조 객체(엔티티) : 식별자를 지닌 전통적인 의미의 객체를 가리키는 용어
- 값 객체 : 식별자를 가지지 않는 값을 가리키는 용어
-
상태
- 특정 시점에 객체가 가지고 있는 정보의 집합
- 세상의 복잡성을 완화하고 인지 과부하를 줄일 수 있는 중요한 개념
-
행동
- 객체의 행동은 상태에 영향을 받는다.
- 객체의 행동은 상태를 변경시킨다.
-
프로퍼티
- 객체의 상태를 구성하는 모든 특징
프로퍼티
는 변경되지 않고 고정되기 때문에 정적
프로퍼티 값
은 시간이 흐름에 따라 변경되기 때문에 동적
-
링크
- 객체와 객체 사이의 의미 있는 연결
- 객체의 링크를 통해서만
메시지
를 주고받을 수 있다.
- 링크는 객체가 다른 객체를 참조할 수 있고, 이것은 일반적으로 한 객체가 다른 객체의 식별자를 알고 있다는 것으로 표현된다.
-
속성
- 객체를 구성하는 단순한 값
- 객체 = 속성 + 프로퍼티
-
캡슐화
- 객체는 상태를 캡슐 안에 감춰둔 채 외부로 노출하지 않는다.
- 송신자가 상태 변경을 기대하더라도 수신자가 자신의 상태를 변경하지 않는다면 송신자가 간섭할 수 있는 어떤 여지도 없다.
-
식별자
- 객체를 서로 구별할 수 있는 특정한 프로퍼티
- 값과 객체의 가장 큰 차이점은 값은 식별자를 가지지 않지만
객체는 식별자를 가진다는 점
이다
-
값
- 값의 상태는 변하지 않기 때문에 불변 상태를 가진다.
- 동등성 : 값이 같은지 여부는 상태가 같은지를 이용해 판단
-
쿼리 : 객체의 상태를 조회하는 작업
-
명령 : 객체의 상태를 변경하는 작업
행동이 상태를 결정한다.
상태를 먼저 결정하고 행동을 나중에 결정하는 방법은 설계에 나쁜 영향을 끼친다.
- 상태를 먼저 결정할 경우 캡슐화가 저해된다.
- 상태에 초점을 맞출 경우 상태가 객체 내부로 깔끔하게 캡슐화 되지 못하고 공용 인터페이스에 그대로 노출돼버릴 확률이 높아진다.
- 객체를 협력자가 아닌 고립된 섬으로 만든다.
- 객체가 필요한 이유는 애플리케이션의 문맥 내에서
다른 객체와 협력
하기 위해서이다.
- 객체의 재사용성이 저하된다.