반응형
* 이 글은 책을 읽고 주관적인 생각과 함께 요약 정리한 글입니다.설명을 위한 글이 아니므로 내용이 정확하지 않을 수 있습니다.
제목 : 객체지향의 사실과 오해
저자 : 조영호
범위 : 07 함께 모으기
요약 정리
- 객체지향의 세 가지 관점
- 개념 관점(Conceptual Perspective)
- 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현
- 소프트웨어는 도메인에 존재하는 문제를 해결하기 위해 개발된다.
- 실제 도메인의 규칙과 제약을 최대한 유사하게 반영하는 것이 핵심이다.
- 명세 관점(Specification Perspective)
- 도메인을 벗어나 개발자의 영역인 소프트웨어에 집중
- 객체들의 책임에 초점을 맞추며 객체의 인터페이스를 바라보는 관점이다.
- 구현 관점(Implementation Perspective)
- 책임을 수행하는 데 필요한 코드를 작성
- 객체의 책임을 어떻게 수행할 것인가
- 인터페이스를 구현하는 데 필요한 속성과 메서드를 클래스에 추가한다.
- 세 가지 관점은 동일한 클래스를 세 가지 다른 방향에서 바라보는 것을 의미한다.
- 클래스는 세 가지 관점을 모두 수용할 수 있도록 개념, 인터페이스, 구현을 함께 드러내야 한다.
- 객체의 인터페이스는 수정하기 어렵다. 최대한 변화에 안정적인 인터페이스를 만들기 위해서는 구현과 관련된 세부 사항이 드러나지 않게 해야 한다.
- 도메인 개념을 객체에 적용할 수록 코드의 구조와 의미를 쉽게 유추할 수 있다. 이는 유지보수에 큰 영향을 미친다.
- 중요한 것은 클래스를 봤을 때 명세 관점과 구현 관점으로 나눠볼 수 있어야 한다는 것이다. 구현이 인터페이스 밖으로 노출해서도 안 되고, 인터페이스와 구현을 섞어놓아도 안 된다.
하고 싶은 말
- 도메인, 인터페이스, 구현의 관점을 실제 업무에서도 적용해가면서 코드를 작성해야겠다.
- 도메인 공부가 반드시 필요할 것 같다. 이는 생산성 측면에서 특히 중요해보인다.
반응형
'나는 이렇게 본다 > 객체지향의 사실과 오해' 카테고리의 다른 글
도메인과 유스케이스, 유지보수하기 쉽고 유연한 객체지향 시스템 (0) | 2022.04.16 |
---|---|
객체지향의 강력함은 책임을 자율적으로 만드는 것에 달려있다 (0) | 2022.04.04 |
테스트 주도 개발은 객체지향 설계도구 (0) | 2022.04.01 |
추상화는 복잡성을 이해하기 쉬운 수준으로 단순화하는 것 (0) | 2022.03.29 |
행동이 상태를 결정한다. (0) | 2022.02.10 |