Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 支持相似库的模式_Design Patterns - Fatal编程技术网

Design patterns 支持相似库的模式

Design patterns 支持相似库的模式,design-patterns,Design Patterns,我们当前的框架软件提供了日志记录机制,使用第三方库记录调试消息,框架有一个包装器。我们还计划为另一个客户端使用另一个第三方调试记录器库。因此,我们需要同时支持框架中的日志机制,客户机可以选择任何日志机制。在这种情况下,哪种设计模式更合适?参考任何现有的示例代码都很好。您应该使用适配器模式&也可以使用工厂方法模式 适配器模式使系统能够使用其接口的类 不太符合它的要求 请参阅以下URL中有关适配器模式和示例代码的信息: C#链接: Java链接: ITarget:客户端想要使用的接口-->这应该是一

我们当前的框架软件提供了日志记录机制,使用第三方库记录调试消息,框架有一个包装器。我们还计划为另一个客户端使用另一个第三方调试记录器库。因此,我们需要同时支持框架中的日志机制,客户机可以选择任何日志机制。在这种情况下,哪种设计模式更合适?参考任何现有的示例代码都很好。

您应该使用适配器模式&也可以使用工厂方法模式

适配器模式使系统能够使用其接口的类 不太符合它的要求

请参阅以下URL中有关适配器模式和示例代码的信息:

C#链接:
Java链接:

ITarget:客户端想要使用的接口-->这应该是一个公开所有要使用的方法/属性的接口,无论使用哪个库

Adaptee:一个需要调整的实现-->这将是旧的和新的第三方调试记录器库

适配器:根据适配器-->实现ITarget接口的类这是实现ITarget接口并在内部调用适配器方法/属性的适配器。您将为新的和旧的调试记录器库提供单独的适配器

请求:客户端需要的操作-->这将是您的方法,如
LogDebugInfo()

SpecificRequest:请求功能在适配器中的实现-->这将是在适配器中say
LogDebugInfo()
的实际实现

工厂方法模式是一种面向对象的创新设计模式,用于实现工厂和交易的概念 创建对象(产品)而不指定 将要创建的对象的确切类别


工厂方法模式:

您使用哪种语言?