도서
[객체 지향의 사실과 오해] 1. 협력하는 객체들의 공동체
딤섬뮨
2022. 10. 6. 21:53
728x90
최근 클리코드와 한이음 프로젝트에서 OOP에 대해 많이 언급되고 있다.
따라서 멘토님이 추천해준 책을 사서 읽어보고 있다.
주절주절 설명은 하지 않고 내가 밑줄 친 부분만 끄적끄적 해보겠다.
- 객체지향의 목표는 실세계를 모방하는 것이 아니라 오히려 새로운 세계를 창조하는 것이다.
- 그럼에도 왜 실세계를 모방한다고 할까?
- 객체를 스스로 생각하고 스스로 결정하는 현실세계의 생명체에 비유하는 것은 상태와 행위를 캡슐화하는 소프트웨어 객체의 자율성을 설명하는데 효과적이기 떄문이다.
- 객체 지향의 개념을 훌룡한 프로그램을 설게하고 구혆는데에는 부적합하지만
- 객체 지향의 관점을 설명하기에는 실세계를 모방했다고 해도 goodd
요청과 응답으로 구성된 협력
- 일상에서 혼자 힘으로 해결하기 힘든 것을 다른 사람에게 도움을 요청한다.
- 요청과 응답을 통해 다른 사람과 협력할 수 있는 능력
- 역할이라는 단어는 의미적으로 책임을 내포한다.
- 사람들이 협력을 위해 특정한 역할을 맡고 적합한 책임을 수행한다는 사실은 몇가지 중요한 개념을 제시한다
- 여러 사람이 동일한 역할을 수행할 수 있다. - 누가 커피를 제조하든 노상관 커피만 완성하면 ㄱㅊㄱㅊ
- 역할은 대체가능성을 의미한다. -캐시어가 누구든 요청만 받아주면 ㄱㅊ
- 책임을 수행하는 방법은 자율적으로 수행가능 - 커피를 어떻게 만드는지 노상관
- 한사람이 동시에 여러 역할 수행가능 - 바리스타랑 캐시어 1인2역 가능
- 애플리케이션은 작은 책임으로 쪼개지고 그 책임들은 객체가 협력을 통해 수행한다
- 객체는 충분히 협력적이여야함 아니 무조건 협력적 혼자 모든걸 처리한다? 일단 복잡하기때문에 자멸할것
- 객체는 자율적이여햠. 자기 스스로의 원칙에 따라 자기 스스로 통제하여 처리한다.
- 다른 사람의 요청에 따라 충분히 알아서 해결하는 인간처럼,
- 객체 지향 설계의 묘미는 다른 객체와 조화롭게 협력할 수 있을 만큼 충분히 개방적인 동시에 협력에 참여하는 방법을 스스로 결정할 수 있을 만큼 충분히 자율적인 객체들의 공통체를 설계하는데 있다.
- 객체는 흔히 상태와 행동을 함께 지닌 실체이다.
- 객체의 자율성은 내외부를 구별하는것에서 나옴.
- 객체가 객체에게 요청하는 유일한 수단은 바로 메세지이다.
- 객체가 수신된 메세지를 처리하는 방법이 메서드
728x90