건축가가 래퍼 (즉, SLF4J)를 포장하려는 동기의 동기는 SLF4J에서 애플리케이션을 분리하는 것입니다. 분명히, 응용 프로그램 내에서 SLF4J API를 호출하면 SLF4J에 대한 종속성이 생깁니다. 그러나 아래에 설명 된대로 격리 원칙을 반복적으로 적용하려는 것도 똑같이 정당합니다. 리처드 도킨스 (Richard Dawkins)의 질문을 상기시켜줍니다. 하나님이 우주를 창조 하셨다면 누가 신을 창조하셨습니까?
실제로 SLF4J를 래핑하는 래퍼에 격리 원칙을 적용 할 수도 있습니다. SLF4J-wrapper가 SLF4J보다 다소 열등한 경우 분리의 원인이 부적절합니다. 가능한 경우 래퍼가 원본과 같거나 초과하는 경우는 드뭅니다. SWT는 주목할만한 반대 사례로 인용 될 수 있습니다. 그러나 SWT는 상당한 비용을 들여 대규모 프로젝트입니다. 요컨대 SLF4J에 대한 정의에 따라 SLF4J-wrapper가 달라집니다. 동일한 일반 API를 사용해야합니다. 향후 로깅 API가 새롭고 상당히 다른 경우, 래퍼를 사용하는 코드는 새 API로 SLF4J를 직접 사용하는 코드로 마이그레이션하는 것도 똑같습니다. 따라서 래퍼는 코드의 미래를 보장하지는 않지만 추가 간접 참조를 추가하여 코드를 더 무겁게 만들 수 있습니다.
간단히 말해서 더 나은 방법이 없더라도 SLF4J를 래핑하는 시간을 낭비하지 않아야합니다. 래퍼의 추가 가치가 0에 가깝기 때문입니다.
또한 주제는 SLF4J FAQ entry에 있습니다.
건축가는 slf4j가 무엇인지 이해하지 못했습니다. –