我们当前的框架软件使用第三方库提供日志记录机制来记录调试消息,框架有一个包装器。我们还计划为另一个客户端使用另一个第三方调试记录器库。因此,我们需要支持框架中的两种日志记录机制,客户端可以选择任何日志记录机制。在这种情况下,哪种设计模式更合适?对任何现有示例代码的引用都会很棒。
答案 0 :(得分:1)
您应该使用适配器模式&也是工厂方法模式。
适配器模式使系统能够使用其接口的类 不完全符合其要求。
请参阅以下网址的示例代码,查看有关适配器模式的信息:
C#link: http://msdn.microsoft.com/en-us/library/orm-9780596527730-01-04.aspx
Java链接: http://www.tutorialspoint.com/design_pattern/adapter_pattern.htm
ITarget :客户要使用的界面 - >这应该是一个界面,展示您要使用的所有方法/属性,无论您使用哪个库。
适应者:需要调整的实施 - >这将是您的新旧第三方调试记录器库。
适配器:根据Adaptee实现ITarget接口的类 - >这是实现ITarget接口并在内部调用Adaptee方法/属性的Adapter。您将拥有用于新旧调试记录器库的单独适配器。
请求:客户需要的操作 - >这将是您的方法,如LogDebugInfo()
SpecificRequest:在Adaptee中执行请求的功能 - >这将是Adaptee中说LogDebugInfo()
的实际实现。
工厂方法模式是一种面向对象的创建设计模式,用于实现工厂和交易的概念 与创建对象(产品)而不指定的问题 将要创建的确切对象类。
工厂方式模式: http://www.codeproject.com/Articles/570183/Factory-Method-Pattern