gpt4 book ai didi

design-patterns - 桥接模式和适配器模式的区别

转载 作者:行者123 更新时间:2023-12-03 04:39:27 27 4
gpt4 key购买 nike

桥接模式和适配器模式有什么区别?

最佳答案

"Adapter makes things work after they're designed; Bridge makes them work before they are. [GoF, p219]"

实际上,当您拥有现有代码(无论是第三方代码还是内部代码)但超出您的控制范围,或者无法更改以满足您所需的接口(interface)时,适配器模式非常有用它到。例如,我们有一个 SuperWeaponsArray,它可以控制一系列末日设备。

public class SuperWeaponsArray {
/*...*/

public void destroyWorld() {
for (Weapon w : armedWeapons) {
w.fire();
}
}
}
太棒了。但我们意识到我们的武器库中已经有一种核装置,它的出现早于武器界面的转换。但我们真的很希望它在这里工作...所以我们该怎么做...把它塞进去!

NukeWeaponsAdaptor - 基于我们的 Nuke 类,但导出 Weapon 接口(interface)。太好了,现在我们一定可以毁灭世界了。这看起来有点杂乱,但它使事情顺利进行。

<小时/>

模式是您预先实现的 - 如果您知道您有两个正交层次结构,它提供了一种以您不知道的方式解耦接口(interface)和实现的方法类(class)数量多得惊人。假设您有:

MemoryMappedFile 和 DirectReadFile 类型的文件对象。假设您希望能够从各种来源读取文件(可能是 Linux 与 Windows 实现等)。 Bridge 可以帮助您避免陷入以下困境:

内存映射Windows文件内存映射Linux文件直接读取Windows文件直接读取Linux文件

关于design-patterns - 桥接模式和适配器模式的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425171/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com