티스토리 뷰
프로그래머는 객체지향 프로그램을 작성하기 위해서 동적 모델과 정적 모델을 그려야 한다.
동적모델은 프로그램 실행 구조를 표현하는 움직이는 모델이며 객체와 협력 으로 구성되고
정적모델은 코드의 구조를 담는 고정 모델이며 타입과 관계로 구성된다.
동적모델을 토대 위에 정적 모델을 설계해서 변경에 유연한 코드를 만들어야 한다.
1) 동적 모델과 정적 모델
객체의 행동이 코드를 결정한다.
객체가 외부에 전달하는 행동이 중요하기 때문에 동적 모델이 정적모델을 결정하게 만들어야한다.
만약 정적 모델이 협력에 적합하지 않다면 정적 모델을 지속적으로 개선해야한다.
그러나, 객체가 제공하는 행동 측면에서 적절한 정적 모델을 고려하더라도 변경이 고려되지 않는다면 유지보수하기가 어려워진다.
2) 도메인 모델과 구현
도메인이란 사용자가 프로그램을 사용하는 대상 영역을 말하며, 모델이란 지식을 선택적으로 단순화하고 의식적으로 구조화한 형태이다.
도메인 모델이란 사용자가 프로그램을 사용하는 대상영역에 대한 지식을 선택적으로 단순화하고 의식적으로 구조화한 형태이다.
도메인 안의 개념이 제공하는 틀에 맞춰서 소프트웨어를 구축하지 말자. 도메인안의 개념으로 출발하되
객체들의 협력이 도메인 모델과 맞지 않다면 필요한 개념만 남기고 도메인 모델을 과감히 수정하자.
부록B에서 배우지 못한 방법으로 클래스 인스턴스로 타입을 표현 할 수 있다.
객체타입을 표현하는 별도의 객체를 이용해 타입을 구현하는 것이다.
어떤 인스턴스가 다른 인스턴스의 타입을 표현하는 방법을 TYPE OBJECT 패턴 이라고 부른다.
도메인 모델은 단순히 클래스 다이어 그램이 아니다. 도메인의 핵심을 간략하게 단순화해서 표현할 수 있는 모든 것이 도메인 모델이다.
도메인 모델을 봤을 때 도메인 개념뿐 아니라 코드도 함께 이해할 수 있는 구조를 지니게 하는것이 좋다.
분석 , 설계, 구현 모델을 명확하게 구분 하는 것은 거의 불가능하며, 오히려 세가지 모델이 동일한 모델이 될 수 있도록 유지하자.
도메인의 개념과 객체 사이의 협력을 잘 버무려 코드에 반영하기 위해 고민하고 프로그래밍 하는 동안 분석과 설계와 구현에 대해
동시에 고민하고 있는 것이다.
'JAVA공부 > JAVA' 카테고리의 다른 글
Java 성능 모니터링 ②-① 본론 (VisualVM 분석 및 연동) (0) | 2023.09.13 |
---|---|
Java 성능 모니터링 ① - 서론 (0) | 2023.09.12 |
'오브젝트' 책 보고 공부하기 - (부록B) 타입 계층의 구현 (0) | 2023.07.19 |
'오브젝트' 책 보고 공부하기 - (부록A) 계약에 의한 설계 (0) | 2023.07.10 |
'오브젝트' 책 보고 공부하기 - ⑮ 디자인 패턴과 프레임워크 (0) | 2023.07.10 |