2022.03.03 - [IT 책 독서록] - [객체지향의 사실과 오해] 6장 내용정리
[객체지향의 사실과 오해] 6장 내용정리
2022.03.01 - [IT 책 독서록] - [객체지향의 사실과 오해] 5장 내용정리 [객체지향의 사실과 오해] 5장 내용정리 2021.07.29 - [IT 책 독서록] - [객체지향의 사실과 오해] 4장 내용정리 [객체지향의 사실과
blog.robinjoon.space
7장에서는, 객체지향 설계의 3가지 관점에 대해 설명하고, 실제 코드를 작성하여 그 코드를 각 관점에서 바라본다.
객체지향의 3가지 관점
개념관점
설계는 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현한다. 이 관점은 사용자가 도메인을 바라보는 관점을 반영한다. 따라서 실제 도메인의 규칙과 제약을 최대한 유사하게 반영하는 것이 핵심이다. 즉, 클래스가 은유하는 개념은 도메인 관점을 반영한다.
6장에서 말한 도메인 모델이 객체지향 설계의 개념관점에 대한 내용이다.
명세관점
사용자의 영역인 도메인을 벗어나 개발자의 영역인 소프트웨어로 초점이 옮겨진다. 즉, 도메인의 개념이 아닌 실제로 소프트웨어 속의 객체들의 책임에 초점을 맞추게 된다.
명세 관점에서 프로그래머는 객체가 협력을 위해 '무엇'을 할 수 있는가에 초점을 맞춘다. 이 관점에선, 구현과 인터페이스를 분리하는것이 가장 중요하다.
이전 장에서 계속 말한 책임 주도 설계와 객체간의 협력으로 바라보는 관점이다.
구현관점
실제 작업을 수행하는 코드에 초점을 맞춘 관점이다. 즉, 객체에 주어진 책임을 '어떻게' 수행할 것인가에 초점을 맞추며 인터페이스를 구현하는 데 필요한 속성과 메서드들을 클래스에 추가한다.
정말 말 그대로 구현에 초점을 맞춘 관점이다.
관점들간의 순서는없다.
위에서 말한 관점들은 순서대로 바라보며 설계를 하라는 말이 아니다. 개념관점, 명세관점, 구현관점은 동일한 클래스를 세가지 다른 방향에서 바라보는 것을 의미한다.
클래스가 은유하는 개념은 도메인 관점을 반영한다.
클래스의 공용 인터페이스는 명세관점을 반영한다.
클래스의 속성과 메서드는 구현 관점을 반영한다.
즉, 클래스는 세가지 관점을 모두 수용할 수 있도록 개념, 인터페이스, 구현을 함께 드러내야 하며, 동시에 코드상에서 이들을 섞지 말고 깔끔하게 분리해야 한다.
'IT 책 독서록' 카테고리의 다른 글
[스프링 입문을 위한 자바 객체지향의 원리와 이해] 3장 정리 (0) | 2022.03.24 |
---|---|
[객체지향의 사실과 오해] 부록 A 내용정리 (0) | 2022.03.18 |
[스프링 입문을 위한 자바 객체지향의 원리와 이해] 1 ~ 2장 정리 (0) | 2022.03.14 |
[객체지향의 사실과 오해] 6장 내용정리 (0) | 2022.03.03 |
[객체지향의 사실과 오해] 5장 내용정리 (0) | 2022.03.01 |