design-patterns - 垫片和外观/适配器模式有什么区别?

标签 design-patterns terminology shim

我正在开发一个需要使用某些库的不同不兼容版本的应用程序。我的直觉是在应用程序和库之间引入一个适配器,该适配器将在其中注入(inject)适当的库对象。然后,有人告诉我关于垫片的事。关于它的文献不多。

我想知道垫片与外观和适配器设计模式有何不同?相同的一些流行用途是什么?

最佳答案

在我看来,Adapter 和 Shim 是一样的。

另一方面,Facade 用于不同的目的。如果您希望您的客户端代码能够拉开帷幕,可以这么说,并在不使用您的对象模型的情况下访问底层库,那将是一个 Facade。 Facade 在更复杂的系统之上提供了一组简化或通用的对象/方法,但在需要额外行为时仍提供对底层复杂性的访问。

使用 Adapter 意味着您的客户端代码完全不知道底层实现细节。

关于design-patterns - 垫片和外观/适配器模式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9512690/

相关文章:

linux - "POSIX"是什么意思?

swift - swift underscore 的正式名称是什么?

java - 构造函数过度注入(inject)和门面服务概念

java - 开关语句 : number to enum value/1002 = MyEnum. NewYorkID

user-interface - 交互设计、视觉设计、网页设计、UX 设计、UI 设计、UI 开发之间有什么区别?

jquery - 使用 JSPM 导入 jQuery 插件

javascript - 为什么新的 ES6 find 方法在 JSBin 中无法识别?

c# - 在 shim 类中调用原始方法

RESTful 最佳实践 - 如何命名报表资源

java - 使用状态模式设计在 Java 中实现通信协议(protocol)