9.2 필드 이름 바꾸기 (Rename Field)
리팩터링 전
리팩터링 후
🧷 배경
프로그램 곳곳에서 쓰이는 레코드 구조체의 필드 이름은 중요하다. 데이터 구조는 프로그램을 이해하는 데 큰 역할을 한다.
🧷 절차
레코드의 유효 범위가 제한적이라면 필드에 접근하는 모든 코드를 수정한 후 테스트한다. 이후 단계는 필요 없다.
레코드가 캡슐화되지 않았다면 우선 레코드를 캡슐화(7.1절)한다.
캡슐화된 객체 안의 private 필드명을 변경하고, 그에 맞게 내부 메서드들을 수정한다.
테스트한다.
생성자의 매개변수 중 필드와 이름이 겹치는 게 있다면 함수 선언 바꾸기(6.5절)로 변경한다.
접근자들의 이름도 바꿔준다(6.5절).
🧷 예시
name을 title로 바꿔보자.
organization
레코드를 클래스로 캡슐화한다.
레코드를 캡슐화하면 이름을 변경할 곳이 게터 함수, 세터 함수, 생성자, 내부 데이터 구조 네곳이다.
별도의 필드를 정의하고 생성자와 접근자에서 둘을 구분해 사용하자.
생성자에서 title도 받아들일 수 있도록 한다.
name을 사용할 수 있게 하던 코드를 제거한다.
접근자를 수정한다.
가변 데이터 구조를 이용한다면 데이터를 복제하는 것은 재앙이다. 불변 데이터 구조가 널리 쓰이게 된 이유는 재앙을 막기 위해서이다.
Last updated