我试着阅读了很多关于dofactory、维基百科和许多网站的文章。我不知道桥模式和策略模式之间的区别。
我知道它们都将抽象从实现中解耦出来,并且可以在运行时更改实现。
但是我仍然不知道在哪种情况下我应该使用策略,或者在哪种情况下我应该使用桥接。
发布于 2009-01-21 09:18:51
语义学。来自wikipedia
策略模式的UML类图与桥模式的图相同。然而,这两种设计模式的意图并不相同。虽然策略模式适用于行为,而桥接模式适用于结构。
上下文和策略之间的耦合比桥模式中抽象和实现之间的耦合更紧密。
据我所知,当您抽象可以从外部来源提供的行为时,您正在使用策略模式。config可以指定加载一些插件程序集),当您使用相同的构造来使您的代码更整洁时,您将使用桥模式。实际的代码将看起来非常相似--您只是将这些模式应用于,原因与略有不同。
发布于 2009-01-21 13:34:25
Bridge模式是一种结构模式(如何构建软件组件?)。策略模式是一个动态模式(你想如何在软件中运行一个行为?)
语法相似,但目标不同:
发布于 2016-09-03 20:51:00
我也是这么想的,但最近我不得不使用bridge,并意识到bridge正在使用策略,并将抽象添加到上下文中,这样您以后就可以在不更改客户端的情况下进行更多更改。在没有抽象的情况下使用策略时,设计就不那么灵活了,并且可能需要在以后对客户端进行更改。但是当使用整个桥梁时,设计变得更加灵活。在这里,您可以看到从策略到桥接如何提供更多的灵活性。我们还假设现在"visa“和"master”不仅在卡上可用,而且在手机和芯片上也可用;如果我们使用桥接,则添加这种支持要容易得多。

https://stackoverflow.com/questions/464524
复制相似问题