응용 프로그램을 시작하는 방법에 대한 리팩토링 작업을 수행해야하는 임무가 있습니다. 기본적으로 GUI 응용 프로그램 시작 코드에 의존하는 콘솔 응용 프로그램이 많아서 우리가 제공해야하는 라이브러리에 대한 킥오프 효과가있는 위조 종속성과 다른 모듈이 선언해야하는 종속성이 있습니다.PicoContainer 시작 순서 제어
그래서 기본적으로 일련의 Runnable 객체를 목록에 던져 순서대로 실행하는 간단한 시작 프레임 워크를 작성했습니다.
하지만 생각 - 그들이 시작됩니다 시작 가능한 구현하는 경우
... 우리는 이미 우리의 프로젝트에 PicoContainer, 그래서 시작시에 실행해야 할 모든 것을 잠재적으로 PicoContainer에 던져 질 수 있고,그러나 어떤 경우에는 그들 사이의 순서를 지정하고자합니다. 예를 들어, 응용 프로그램이 시작되고 있음을 나타내는 헤더를 로그에 기록하기 전에 로그에 다른 구성 요소를 쓰는 것을 원하지 않습니다. 주입 의존성을 도입하여 순서를 도입 할 수 있다는 것을 알고 있지만이 경우 해킹과 같은 느낌이 듭니다. 로그 헤더 작성자를 로그에 쓸 수있는 다른 모든 구성 요소에 대한 종속성으로 추가해야합니다. 모든.
그럼에도 불구하고 PicoContainer 시작 순서를 제어하는 것이 좋을 것 같습니다. 그래서 다른 방법이 있습니까?
또는 간단하게 유지하고 Runnable의 내 목록에 충실 할 수 있습니다. 그것은 결국, 작동합니다.
사실 로거에 시작 헤더를 쓰는 구성 요소는 로거 자체와는 별개의 구성 요소입니다 (단일 책임 원칙 및 그 모든 것). – Trejkaz