3.7.1 생성자 주입
생성자 주입은 클래스의 생성자를 이용하여 의존성을 주입하는 설계를 의미한다. 자바스크립트 프레임워크 중 하나인 앵귤러(Angular)는 ‘services’라는 이름으로 의존성을 주입하는 방식을 흔하게 사용한다. 생성자를 주입하는 방식은 다양한 상황에서 효과적으로 사용할 수 있다.
스테이트풀 클래스가 장점이 없는 것은 아니다. 한 번만 설정하면 다음부터는 재사용할 수 있어 반복 작업을 줄일 수 있다.
비밀번호 검증 프로젝트에 상태 값을 추가하고 생성자 주입으로 dayOfWeekFn을 매개변수로 전달 받기 위해 다음과 같은 설계를 사용할 수 있다.
예제 3-10 생성자 주입 방식
// stub-time/02-inject-object/password-verifier-time01.js
class PasswordVerifier {
constructor(rules, dayOfWeekFn) {
this.rules = rules;
this.dayOfWeek = dayOfWeekFn;
}