2014-01-13 1 views
0

우리의 현재 프레임 워크 소프트웨어는 디버그 메시지를 로깅하기 위해 제 3 자 라이브러리를 사용하는 로깅 메커니즘을 제공하며 프레임 워크에는 래퍼가 있습니다. 또한 다른 클라이언트를 위해 다른 타사 디버그 로거 라이브러리를 사용할 계획입니다. 따라서 우리는 프레임 워크에서 로깅 메커니즘을 모두 지원해야하며 클라이언트는 로깅 메커니즘 중 하나를 선택할 수 있습니다. 어떤 디자인 패턴이이 시나리오에서 더 적절할 것입니까? 기존 샘플 코드에 대한 참조는 유용 할 것입니다.유사한 라이브러리를 지원하기위한 패턴

+0

를 사용하는 언어? –

답변

1

당신은 어댑터 패턴 그것에 대해 & 또한 팩토리 메소드 패턴를 사용해야합니다.

어댑터 패턴을 사용하면 인터페이스가 과 일치하지 않는 클래스를 사용할 수 있습니다.

아래의 URL에서 예제 코드와 어댑터 패턴에 대한 정보를 참조하십시오 :

C#을 링크 :http://msdn.microsoft.com/en-us/library/orm-9780596527730-01-04.aspx
자바 링크 :http://www.tutorialspoint.com/design_pattern/adapter_pattern.htm

ITarget : 클라이언트 인터페이스를 사용하고 싶어 -> 이것은 당신이 사용하고있는 라이브러리에 상관없이 사용하고자하는 모든 메소드/프로퍼티를 공개하는 인터페이스 여야한다.

적응 : 적응이 필요한 구현 -> 이전 및 새로운 제 3 자 디버그 로거 라이브러리가 될 것입니다.

어댑터 : Adaptarget의 관점에서 ITarget 인터페이스를 구현하는 클래스 -> ITarget 인터페이스를 구현하고 Adaptee 메소드/속성을 내부적으로 호출하는 어댑터입니다. 새 디버거 로거 라이브러리와 이전 디버그 로거 라이브러리에 대해 별도의 어댑터가 제공됩니다.

요청 : 클라이언트가 원하는 동작 - LogDebugInfo()

SpecificRequest처럼>이 당신의 방법이 될 것입니다 : ->이의 실제 구현 될 것입니다 그 Adaptee의 요청의 기능의 구현 Adaptee의 LogDebugInfo()이라고 말하면됩니다.

공장 방법 패턴

는 공장의 개념을 구현하는 객체 지향 창조적 디자인 패턴이며, 생성 될 객체의 정확한 클래스를 지정하지 않고 객체 (제품)을 만드는 문제를 을 다룹니다.

공장 방법 패턴 : 당신이http://www.codeproject.com/Articles/570183/Factory-Method-Pattern

+0

알았어요. 감사. –

관련 문제