디커플링 뜻

SOL·2023년 6월 27일
0

TIL

목록 보기
6/7

디커플링 된다

메인 모듈(상위 모듈)이 하위 모듈에 대한 의존성이 떨어지게 됨을 나타낸다.

예시

메인 모듈에 직접 다른 하위 모듈에 대한 의존성을 주기보다는 중간에 의존성 주입자(dependency injector)가 이 부분을 가로채 메인 모듈에 간접적으로 의존성을 주입하는 것

public class DataProcessor {

	private final DbManager manager = new SqliteDbManager("db.sqlite");
    private final Calculator calculator = new HighPrecisionCalculator(5);
    
    public void processData() {
    	this.manager.processData();
    }
    
    public BigDecimal calc(BigDecimal input) {
    	return this.calculator.expensiveCalculation(input);
    }
}

=> tighgly coupled

이걸 디커플링하면(의존성 주입으로 바꾸면)

public class DataProcessor {

	private final DbManager manager;
    private final Calculator calculator;
    
    public DataProcessor(DbManager manager, Calculator calculator) {
    	this.manager = manager;
        this.calculator = calculator;
    }
}

-> 이제
manager, calculator 가 유닛 테스트할 때 모킹할 수 있도록 바뀌었다.

참고

0개의 댓글