더북(TheBook)

3.3.4 리팩토링 제안

‘상호 보완적이며 대칭적인’ 메서드가 빠진 인터페이스나 클래스를 찾았다면 이것은 아마도 불완전한 추상화를 의미할 것이다. 표 3.2에서 일반적인 연산 쌍을 나열해 놓았다. 여기서는 단지 일반적인 유형만 예로 나열했고, 실제 이름은 맥락에 따라 달라질 수 있다. 예를 들어, Stack이라는 맥락에서 연산 이름은 pushpop이 되는 반면, 데이터 스트림 맥락에서 연산 이름은 sourcesink가 되어야 한다. 이런 악취에 대응하는 리팩토링 전략은 인터페이스나 클래스 자체에서 상호 보완적인 연산이 빠졌는지 확인하는 방식이다.

또 서로 관계가 있는 메서드를 함께 제공하게 요구하는 언어나 라이브러리 관례가 있을 때는 추상화에서 빠진 메서드를 추가하는 리팩토링이 필요하다.

 

▼ 표 3.2 일반적인 대칭 메서드 쌍

min/max

open/close

create/destroy

get/set

read/write

print/scan

first/last

begin/end

start/stop

lock/unlock

show/hide

up/down

source/target

insert/delete

first/last

push/pull

enable/disable

acquire/release

left/right

on/off

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