우리의 현재 프레임 워크 소프트웨어는 디버그 메시지를 로깅하기 위해 제 3 자 라이브러리를 사용하는 로깅 메커니즘을 제공하며 프레임 워크에는 래퍼가 있습니다. 또한 다른 클라이언트를 위해 다른 타사 디버그 로거 라이브러리를 사용할 계획입니다. 따라서 우리는 프레임 워크에서 로깅 메커니즘을 모두 지원해야하며 클라이언트는 로깅 메커니즘 중 하나를 선택할 수 있습니다. 어떤 디자인 패턴이이 시나리오에서 더 적절할 것입니까? 기존 샘플 코드에 대한 참조는 유용 할 것입니다.유사한 라이브러리를 지원하기위한 패턴
답변
당신은 어댑터 패턴 그것에 대해 & 또한 팩토리 메소드 패턴를 사용해야합니다.
어댑터 패턴을 사용하면 인터페이스가 과 일치하지 않는 클래스를 사용할 수 있습니다.
아래의 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
알았어요. 감사. –
- 1. 디자인 패턴 - 유사한 개체를
- 2. 기존 응용 프로그램에서 추가 공급 업체를 지원하기위한 디자인 패턴
- 3. Java의 이미지에서 유사한 패턴 식별
- 4. 엔터 프라이즈 라이브러리를 사용하여 로깅을위한 패턴
- 5. 리눅스에서 유사한 공유 라이브러리를 여러 개로드하는 중
- 6. 여러 클라이언트를 지원하기위한 데이터베이스 디자인
- 7. 분산 팀을 지원하기위한 TFS 구성
- 8. 여러 CPU를 지원하기위한 커널 개발
- 9. 해외 여행자를 지원하기위한 암호 제한
- 10. 유사한 웹 서비스 구현에 적합한 디자인 패턴
- 11. 이전 iOS 버전을 지원하기위한 약한 연결
- 12. Spring AMQP 라이브러리를 사용하는 요청 - 응답 패턴
- 13. 패턴 라이브러리를 사용하여 파이썬리스트 인덱스가 범위를 벗어났습니다.
- 14. 디자인 패턴 라이브러리를 즉시 사용할 수 있습니까?
- 15. AWS의 IPV6을 지원하기위한 클래식로드 밸런서 생성 AWS의
- 16. Flyway에서 여러 RDBMS를 지원하기위한 규정 방법은 무엇입니까?
- 17. 여러 언어를 지원하기위한 ASP MVC 기술
- 18. 카메라가있는 iOS 장치 만 지원하기위한 호환성 루틴
- 19. 안드로이드 전화 (잠금 패턴 또는 유사한)를 잠금 LOCK_PATTERN_ENABLED 이후
- 20. 두 개의 유사한 패턴 URL을 구분하는 방법은 무엇입니까?
- 21. 유사한 URL 그룹화/공통 URL 패턴 찾기 (Python)
- 22. CancellationTokenSource 및 CancellationToken 패턴과 유사한 스레드 일시 중지 패턴?
- 23. 유사한 엔티티들을 그룹화하는 것을 처리 할 디자인 패턴
- 24. 유사한 알고리즘에서 작동하는 여러 입력을 처리하기위한 디자인 패턴
- 25. 잘린 유사한 이미지 찾기
- 26. 유사한
- 27. 누구나 오디오 패턴 인식을위한 라이브러리를 제안 할 수 있습니까?
- 28. 오브젝트 변경을위한 디자인 패턴
- 29. olingata 라이브러리를 생성하기 위해 olingo 라이브러리를 사용할 때/* 이외의 서블릿 URL 패턴
- 30. reset.css와 유사한 reset.js가 있습니까?
를 사용하는 언어? –