아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
아하

생활

생활꿀팁

심각한진도개192
심각한진도개192

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

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

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

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

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

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

    55글자 더 채워주세요.
    1개의 답변이 있어요!
    • 차분한기러기89
      차분한기러기89

      아키텍처가 복잡해지면, 레이어를 잘게 나누게 됩니다.

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

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

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

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

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