책을 읽으며 저의 생각을 정리한겁니다. 오류가 있을 시 피드백 부탁드립니다.
학습내용
- 상태, 행동, 식별자에 대한 이해
- 객체의 의인화, 은유에 대한 이해
상태와 행동의 상호관계
- 객체의 행동은 상태에 영향을 받는다.
- 상태도 행동에 상태를 변화 시킨다.
왜? 책임 주도 설계가 나온것인가?
1강에서 설계를 한 것을 바탕으로 설명하자면 인바디라는 객체에 행동은 인바디를 계산해주는 것이다.
그러면 계산할때 어떤 상태가 필요할까??
체지방률과 골견근량에 필요한 키와 몸무게, 회원이름을 출력해야할 이름도 필요하다.
이처럼 행동을 먼저 생각하고 상태가 뭐가 필요한지 생각을 해보면 설계할때 수정을 덜하고 편하다.
왜? 상태라는 개념이 나온것인가?
문제 -> 과거에 행동과 현재의 행동의 결과를 어떤 행동을 했는지 잘 알지 못한다.
고안 -> 프로그래밍에서 상태라는 개념을 고안해냈다.
식별자가 무엇일까?
- 객체의 상태를 식별할 수 있는 식별자가 필요
- 식별자를 프로퍼티라고 부른다.
- 상태 그 자체를 정적 프로퍼티 라고 한다.
- 상태의 값을 동적 프로퍼티 라고 한다.
- getter(), setter() 메서드들을 프로퍼티라 한다.
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
객체는 자율성이 보장되어야한다.
- 다른 객체가 상태를 직접적으로 컨트롤하면 안된다.
- 스스로 상태를 컨트롤 하는 책임이 있다.
- 캡슐화의 특징이다.
객체는 < 의인화 > 와 < 은유 > 를 사용하여 만들어진다.
- 의인화 : 사물이나 실제 개념의 개체를 인격에 빗대어 표현하는 것이다.
- 은유 : 한가지 개념을 이용해 다른 개념을 빗대어 표현하는 것이다.
- 사용 할 시의 장점
- 수동적인 객체가 아닌 능동적인 객체를 만들 수 있다.
- 이해하기가 쉬우며 재사용이 용이하다.
- 사용 할 시의 장점
정리
1. 행동을 먼저 생각하면 상태가 떠오를 것이다.
2. 다른 객체의 간섭을 직접적으로 받으면 안되고 간접적으로 받아야한다. 즉, 캡슐화를 해야한다.
3. 객체는 현실 세계의 모방이 아닌 추상화, 의인화, 은유를 통해 만들고 현실 세계와의 표현적 차이를 줄여야한다.
'Book > 객체지향의 사실과 오해' 카테고리의 다른 글
[Book] 되새김질 (0) | 2022.02.22 |
---|---|
[Book] 3장) 타입과 추상화 (0) | 2022.02.16 |
[Book] 1장) 협력하는 객체 (0) | 2022.02.16 |
[Book] 7장) 함께 모으기 (0) | 2022.02.15 |
[Book] 6장) 객체 지도 (0) | 2022.02.13 |
[Book] 5장) 책임과 메시지 (0) | 2022.02.12 |
[Book] 4장) 역할, 책임, 협력 (0) | 2022.02.09 |