아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
심각한진도개192
심각한진도개19220.03.14

메인 함수를 CCommand 객체로 변경하고자 합니다.

메인 함수에서 Command 인터페이스를 구현하는

BCommand 객체를 CCommand 객체로 변경하고자 합니다.

메인함수 코드에서 Command command = new BCommand(); 를

Command command = new CCommand()라고 단순히 한줄만 수정하면 될 것 같은데

그런데 굳이 이것마저 외부 설정파일로 돌리는 이유에 대해서 궁금합니다!

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • 아키텍처가 복잡해지면, 레이어를 잘게 나누게 됩니다.

    그런 상황에서 객체들 간의 의존성이 많이 복잡해져요,

    위의 예시처럼 단순히 하나만 생성하는게 아니라 아래처럼 뎁스도 깊어질 수 있습니다.

    Controller -> CommandBus -> CreateUserCommandHandler -> UserFactory -> UserRepository -> DatabaseConnection -> Config

    이 상황에서 직접 생성한다고 하면 Controller를 생성하기 위해 저 아래있는 Config 객체도 직접 코드에 작성해야 되는데, 그렇게 되면 너무 힘들어지죠 그래서, 생성에 대한 책임을 컨테이너한테 넘기는 겁니다.

    Controller = IoCContainer.get('Controller') 이런 형태로요