개요

응집도가 높아야하고 결합도가 낮아야한다.

응집도 : 관련있는 데이터나 함수가 얼마나 잘 묶여있는가

결합도 : 관련없는것들끼리 묶여있지 않는것 (의존성)

한 모듈이 여러가지 이유로 다양하게 변경되어야하는 상황

ex) 새로운 결제 방식 도입 , DB변경할때 동일한 클래스에 여러메서드를 수정해야하는 경우

문제점

  1. 변경 사항을 만들려하면 매번 동일한 클래스를 고쳐야한다.
  2. 하나의 클래스를 수정하는 것이 아닌 여러 클래스를 수정해야한다.

리팩토링 내용

단계 쪼개기 (Split Phase)

함수 옮기기

함수 추출하기

클래스 추출하기