1. ホーム
  2. design-patterns

[解決済み] ブリッジパターンとストラテジーパターンの違いは何ですか?

2022-07-18 07:52:51

質問

に関する多くの記事を読んでみましたが 工場 やウィキペディア、多くのサイトを読んでみました。 ブリッジパターンとストラテジーパターンの違いが全くわかりません。

どちらも実装から抽象化を切り離し、実行時に実装を変更できることは知っています。

しかし、どのような状況でstrategyを使うべきか、どのような状況でbridgeを使うべきかはまだわかりません。

どのように解決するのですか?

セマンティクス から ウィキペディア :

<ブロッククオート

StrategyパターンのUMLクラス図は パターンのUMLクラス図は、Bridgeパターンの図と同じです。 ブリッジパターンの図と同じです。しかし、この2つの デザインパターンは同じではありません。 その意図は同じではありません。Strategy パターンが振る舞いを意図しているのに対し Bridgeパターンは構造のためのものです。

コンテキストとストラテジーの間の結合は ストラテジーの結合は 抽象化と実装の間のカップリングより ブリッジパターンにおける パターンにおける抽象化と実装の間の結合よりも強固です。

私が理解するところでは、外部ソースから提供される可能性のある動作を抽象化するときに strategy パターンを使用し(たとえば config でプラグインのアセンブリをロードするように指定できます)、同じ構造を使用してコードを少しすっきりさせるときに Bridge パターンを使用します。実際のコードは非常によく似ています。 わずかに異なる理由 .