2-3) Inversion of Control (제어의 역전)

Hyoin Jeong·2022년 7월 19일
0

Inversion of Control (제어의 역전)

결합도의 Order 엔터티를 보면 Order 엔터티가 사용할 클래스를 결정(FixedAmountVoucher)하고 해당 클래스의 객체를 생성

→ 모든 종류의 작업을 사용하는 쪽에서 제어

제어의 역전이란?

  • 이런 제어의 흐름의 역전이 되는것
  • IoC 상황에서는 객체가 자신이 사용할 개체를 스스로 선택하지 않고 스스로 생성도 하지 않음

라이브러리를 사용하는 애플리케이션 코드(애플리케이션 흐름을 직접 제어) 🆚 프레임워크(거꾸로 애플리케이션 코드가 프레임워크에 의해 사용)

프레임워크가 흐름을 주도하면서 개발자가 만든 애플리케이션 코드를 사용하는 것
→ 애플리케이션 코드가 프레임워크가 짜놓은 틀에서 수동적으로 동작 → 이를 The Hollywood Principle

[예제]

  • 애플리케이션의 주요 객체에 대해서 생성( OrderService, VoucherService, OrderRepository, VoucherRepository )과 관계설정(각 레파지토리와 서비스간의 의존관계)을 하는 OrdeContext 클래스를 정의
  • Order에 대한 비즈니스 로직을 담는 OrderService 클래스 정의

0개의 댓글