기존 객체 지향에 대해 어느 정도 알고 있다고 생각을 했다. 하지만 우테코 프리코스를 진행하면서 조금 더 학습이 필요하다고 생각이 들어 추가 학습을 하려고 한다. 이 책의 저자는 기존 토끼책으로 유명한 객체지향의 사실과 오해의 저자 조영호 님의 책이다. 토끼 책을 살까 고민을 하다가 토끼 책 보다 최신판이고 코드로 직접 확인하는 게 더욱 이해가 빠를 거 같아서 구매를 했다.
자율성을 높이자
- 외부의 간섭을 최대한 배제하고 메시지를 통해서만 협력하는 자율적인 객체들의 공동체를 만드는 것이 휼륭한 객체지향 설계를 만들수 있는 지름길이라 한다.
- 외부의 접근을 제한하고 직접 맡은 역할을 처리하는 자율적인 존재가 되도록 설계를 하자.
- 캡슐화를 이용해 의존성을 적절히 관리함으로써 객체 사이의 결합도를 낮추자.
캡슐화
- 객체 내부의 세부적인 사항을 외부에 감추어 은닉하여 보호하는 것
- 객체 내부로의 접근을 제한하여 객체와 객체 사이의 결합도를 낮춰 유지보수성을 증가 시킨다
인터페이스와 구현
객체를 인터페이스와 구현으로 나누고 인터페이스만을 공개해 객체 사이의 결합도를 낮추고 변경에 쉬운 코드를 만들기 위한 가장 기본적인 설계 원칙이다.
절자지향과 객체지향
프로세스와 데이터를 별도의 모듈에 위치시키는 절차적 프로그래밍과는 다르게 데이터와 프로세스가 동일한 모듈 내부에 위치해 자신의 데이터를 스스로 처리하도록 하는 게 객체지향 프로그래밍(OOP)이다.
책임의 이동
어느 한 객체가 전체적인 작업을 하는것이 아닌 책임을 분배해 각 객체가 자신이 맡은 일을 스스로 처리하도록 하자.
모든 책임이 몰려있으면 그곳에 모든 객체가 의존해야한다.
적절한 책임을 분해함으로써 변경에 탄력적이고
가독성이 좋은코드를 얻을수 있다.
'Study > 오프젝트' 카테고리의 다른 글
06) 메시지와 인터페이스 (0) | 2023.12.15 |
---|---|
05) 책임 할당하기 (0) | 2023.12.11 |
04) 설계 품질과 트레이드오프 (1) | 2023.12.07 |
03) 역할, 책임, 협력 (2) | 2023.12.03 |
02) 객체지향 프로그래밍 (0) | 2023.11.29 |