1. ホーム
  2. java

[解決済み] FactoryパターンとStrategyパターンの違いは何ですか?

2022-04-21 10:43:40

質問

ファクトリーパターンとストラテジーパターンの違いについて教えてください。

私にとっては、どちらもファクトリークラスが追加されている以外は同じに見えます(ファクトリーパターンでは製品のオブジェクトを作成する)。

解決方法は?

ファクトリーパターンは、クリエイティブなパターンです。 strategyパターンは、操作パターンである。別の言い方をすれば、ファクトリーパターンは特定の型のオブジェクトを作成するために使われる。 ストラテジーパターンは、ある操作(または操作のセット)を特定の方法で実行するために使用される。古典的な例では、ファクトリーはさまざまな種類の動物を作成することができます。一方、strategy パターンは、例えば、Run、Walk、Lope などの戦略を使って、特定の動作、例えば、Move を実行する。

実は、この2つは一緒に使うことができるのです。 例えば、ビジネス・オブジェクトを作成するファクトリーがあるとします。 このファクトリーでは、永続化媒体に応じて異なるストラテジーを使用することができます。 データがローカルにXMLで保存されている場合、1つのストラテジーを使用します。 もしデータが遠隔地の別のデータベースに保存されている場合は、別のストラテジーを使用することになります。