반응형
1. 티켓판매 애플리케이션 구현하기
2. 무엇이 문제인가
- 모든 모듈은 제대로 실행돼야 한다(o)
- 변경이 용이해야 한다(x) => 과한 의존성 => 결합도가 높다.
- 이해하기 쉬워야 한다(x)
3. 설계 개선하기
- 자율성을 높이자
· 모든 객체가 자율적인 존재가 되도록 설계를 변경(TicketSeller, Audience 등)
· 캡슐화 : 객체 내부의 세부적인 사항을 감추는 것 => 객체 사이의 결합도를 낮춤 => 설계 변경이 쉬워짐.
- 절차지향과 객체지향
· 절차지향: 프로세스와 데이터를 별도의 모듈에 위치시키는 방식
· 객체지향: 프로세스와 데이터를 동일한 모듈 내부에 위치시키는 방식. 어떤 책임을 할당할 것이냐에 초점을 맞춤
- 책임의 이동
· 기존: 책임이 Theater에 집중됨
· 변경: 책임이 ticketSeller, ticketOffice, audienct 에게 적절히 분배됨.
- 의인화
· 모든 객체들이 자율적으로 행동하는 설계.
4. 객체지향 설계
- 좋은 설계: 오늘의 요구하는 기능을 온전히 수행하면서, 내일의 변경을 매끄럽게 수용할 수 있는 설계.
- 자율성 <- 결합도 낮춤 <- 캡슐화
ㄴ<- 책임 분배 <- 의인화(자율적으로 행동)
반응형
'독서 > Javascript' 카테고리의 다른 글
오브젝트 - 4. 설계 품질과 트레이드오프 (0) | 2021.08.09 |
---|---|
오브젝트 - 3. 역할, 책임, 협력 (0) | 2021.08.09 |
오브젝트 - 2.객체지향 프로그래밍 (0) | 2021.08.08 |