더북(TheBook)

18.9 데이터 캡슐화

이전 장에서 객체 지향 디자인이라는 개발 계획을 설명했다. Point, Rectangle, Time 같은 필요한 객체를 밝혀내고 이를 클래스 정의로 표현했다. 실 세계(또는 적어도 수학적 세계)에는 객체와 몇 가지 엔터티 사이에 명확한 유사성이 있다.

그러나 때로는 필요한 객체와 객체가 상호 작용하는 방법 사이에 관계가 명확하지 않을 때가 있다. 이러한 경우에는 다른 개발 계획이 필요하다. 캡슐화와 일반화를 통해 함수 인터페이스를 발견한 것과 마찬가지로 데이터 캡슐화(data encapsulation)를 통해서도 클래스 인터페이스를 발견할 수 있다.

13.8 마르코프 분석(228쪽)에서 사용한 마르코프 분석이 좋은 예에 해당한다. http://thinkpython2.com/code/markov.py에서 내 코드를 받았다면 이 코드가 전역 변수 두 개, suffix_mapprefix를 사용하고 있으며 여러 함수가 두 전역 변수를 읽고 쓴다는 사실을 알았을 것이다.

suffix_map = {}

prefix = ()

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.