서로 다른 변경 이유를 억지로 묶은 추상화는 분리해 다시 찾는다
공유 코드가 서로 다른 개념의 변경 요구를 한곳에서 감당하느라 조건과 예외를 얽어 놓았다면, 기존 추상화를 보존하는 것보다 각 사용처를 분리한 뒤 실제 공통성을 다시 찾는 편이 나을 수 있다.
각 호출자에 필요한 동작을 드러내고 필요 없는 부분을 제거하면, 겉모양이 비슷했던 코드가 무엇 때문에 달라지는지 보인다. 그 뒤 함께 바뀔 이유가 있는 부분을 다시 추출한다. 이미 투자한 노력만으로 잘못된 경계를 유지하지 않는다. Sandi Metz 원문
정당한 정책·변형 분기는 존재한다. 분기 수나 중복만으로 분리를 결정하지 않고 개념·책임·변경 이유의 충돌을 확인한다. 구조를 바꾸며 외부 동작도 바꾼다면 그 계약 변경은 별도로 다룬다.