읽은 책 정리/객체지향의 사실과 오해

07 함께 모으기

포포015 2021. 9. 15. 23:22

객체지향 설계안에 존재하는 세가지 상호연관된 관점에 대해 시작한다.

 

1.개념관점

설계는 도메인안에 존재하는 개념과 개념들 사이의 관계를 표현한다.

(실제 도메인의 규칙과 제약을 최대한 유사하게 반영하는게 핵심이다.)

 

2.명세 관점

사용자의 영역인 도메인을 벗어나, 개발자의 영역인 소프트웨어로 초점이 옮겨진다.

객체의 인터페이스를 바라보게된다

객체가 협력을 위해 '무엇'을 할수 있는가에 초점을 맞춘다.

 

3. 구현 관점

실제 작업을 수행하는 코드와 연관되있다.

(객체들이 책임을 수행하는데 필요한 동작하는 코드를 작성한다)

어떻게 수행할것인가에 초점을 둔다

 

도메인 모델

도메인 모델의 중요성은 어떤타입이 도메인을 구성하느냐의 타입들 사이에 

어떤관계가 존재하는지를 파악함으로써 도메인을 이해하는것

 

* 객체지향 설계의 첫번째 목표는 훌륭한 객체를 설계하는것이 아니라 훌륭한 협력을 설계하는것이다.

 

 

도메인 개념 참조

소프트웨어는 항상변한다

설계는 변경을 위해 존재한다.

여러개의 클래스로 기능을 분할하고 클래스안에서 인터페이스와 구현을 분리하는 이유는

변경이 발생했을때 코드를 좀더 수월하게 수정하길 원하기때문이다.

(도메인 개념을 따르면 변화에 쉽게 대응할수있다.)

 

 

정리

인터페이스와 구현을 분리하자!

( 명세관점이 설계를 주도하면 설계의 품질이 향상될수있다.)

 

구현 관점은 최대한 외부에 노출하지말자.

'읽은 책 정리 > 객체지향의 사실과 오해' 카테고리의 다른 글

06 객체 지도  (0) 2021.09.15
05 책임과 메시지  (1) 2021.09.15
04 역할, 책임, 협력  (0) 2021.09.15
03 타입과 추상화  (0) 2021.09.12
02 이상한 나라의 객체  (1) 2021.09.11