더북(TheBook)

동작을 변경하지 않고 디자인을 변경하는 것과 같은 프로그램 변경도 리팩터링이다(77쪽의 리팩터링 참고).

이 예제에서 객체와 메서드를 디자인하기 위해 제안하는 개발 계획은 다음과 같다.

1. 전역 변수(필요하다면)를 읽고 쓰는 함수를 작성하는 것으로 시작한다.

2. 프로그램이 동작한다면 전역 변수와 이를 사용하는 함수 사이에 연관 관계를 찾는다.

3. 연관된 변수를 객체의 속성으로 캡슐화한다.

4. 연관된 함수는 새로운 클래스의 메서드로 변환한다.

연습삼아 내가 작성한 마르코프 코드를 http://thinkpython2.com/code/markov.py에서 받아서 지금 설명한 단계에 따라 전역 변수를 Markov 클래스의 속성으로 캡슐화해보자.

해법: http://thinkpython2.com/code/Markov.py(대문자 M에 주의하자)

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