개발 서적 기록/오브젝트_조영호

10일차 - 진정한 캡슐화는 변경 가능한 모든 것을 내부에 숨긴다

밍 끄적 2023. 8. 10. 22:39
728x90

2023.08.10 THU

117p ~ 130p

 

9일차 내용 ⬇️

2023.08.09 - [개발 서적 기록/오브젝트_조영호] - 9일차 - 캡슐화, 응집도 그리고 결합도

 

9일차 - 캡슐화, 응집도 그리고 결합도

2023.08.09 WED 107p ~ 118p 8일차 내용 ⬇️ 2023.08.09 - [개발 서적 기록/오브젝트_조영호] - 8일차 - 추상화를 통한 역할 부여 그리고 책임 중심 설계 8일차 - 추상화를 통한 역할 부여 그리고 책임 중심 설

magenta-ming.tistory.com


새로운 데이터 타입을 정의할 때는 데이터와 오퍼레이션을 고려하자

상태와 행동을 객체라는 하나의 단위로 묶는 이유는 객체 스스로 자신의 상태를 처리할 수 있게하기 위해서다.

객체 내부에 저장되는 데이터보다, 객체가 협력에 참여하면서 수행할 책임을 정의하는 오퍼레이션이 더 중요하다.

 

그래서 새로운 데이터 타입을 정의할 때에는 두 개의 단계를 고려해야한다.

1. 이 객체가 어떤 데이터를 포함해야하는가? 어떤 데이터를 관리해야하는가?

2. 이 객체가 데이터에 대해 수행해야하는 오퍼레이션은 무엇인가? 이 데이터를 처리하기 위해 어떤 오퍼레이션이 필요한가?

단순히 객체 내부의 데이터만 감춰서를 캡슐화할 수 없다.

내부 속성을 외부로부터 감추는 것은 캡슐화의 일부일 뿐이다. 데이터 캡슐화를 수행한 것이다.

진정한 캡슐화는 데이터 뿐만 아니라, 구현과 관련된 변경할 수 있는 어떤 것 감추는 것이다.

 

728x90