ソフトウェア設計パターンとして、戦略パターンは、オブジェクトが特定の動作をすることを意味しますが、異なるシナリオでは、その動作は異なる実装アルゴリズムを持ちます。このパターンは、複数の類似したアルゴリズムの問題を解決します。以下、複雑さ「if...else」の使用によるメンテナンスの難しさ。
はじめに
目的: 一連のアルゴリズムを定義し、それらを 1 つずつカプセル化し、アクセスできるようにするお互い。
主な解決策: 類似したアルゴリズムが複数ある場合、if...else を使用すると複雑さが増し、メンテナンスが困難になります。
いつ使用するか: システムには非常に多くのクラスがあり、それらを区別するのはその直接の動作です。
解決方法: これらのアルゴリズムを 1 つずつクラスにカプセル化し、任意に置き換えます。
主要なコード: 同じインターフェイスを実装します。
応用例: 1. 諸葛孔明のヒント、それぞれのヒントは戦略です。 2. 移動方法は自転車か車か、それぞれの移動方法に戦略があります。 3. JAVA AWT の LayoutManager。
利点: 1. アルゴリズムを自由に切り替えることができます。 2. 複数の条件判断を使用しないでください。 3. 優れた拡張性。
デメリット: 1. 戦略のカテゴリが増加します。 2. すべての戦略クラスを外部世界に公開する必要があります。
使用シナリオ: 1. システム内に多数のクラスがあり、クラス間の違いがその動作のみである場合、戦略パターンを使用して、オブジェクトに多数の動作の中から 1 つの動作を動的に選択させることができます。 2. システムは、いくつかのアルゴリズムから 1 つを動的に選択する必要があります。 3. オブジェクトに多くの動作があり、適切なパターンがない場合は、複数の条件付き選択ステートメントを使用してこれらの動作を実装する必要があります。
注: システムに 4 つを超える戦略がある場合は、ポリシー クラスの拡張の問題を解決するために混合モードの使用を検討する必要があります。
実装
アクティビティを定義する Strategy インターフェイスと、Strategy インターフェイスを実装するエンティティ Strategy クラスを作成します。コンテキストは、特定の戦略を使用するクラスです。
StrategyPatternDemo デモ クラスは、Context オブジェクトと戦略オブジェクトを使用して、構成または使用される戦略が変更されたときの Context の動作の変化を示します。
推奨チュートリアル: 「PHP」
以上が戦略パターンとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

1。AO3公式ウェブサイトQuark Entantry clickを保存する。 2。AO3クォークの入り口の公式Webサイト☜☜☜☜☜☜☜Clickを保存します。 【AO3】1。 AO3(私たち自身のアーカイブ)は、ファンが作成した巨大なオンラインアーカイブWebサイトです。 2.主に、本や映画からテレビシリーズやゲームまで、さまざまなメディアをカバーするファン作品が含まれています。ほとんどすべてが含まれています。 3. AO3には、豊富なコンテンツと多様なタイプがあり、さまざまな読者のニーズを満たすことができます。

1。AO3ミラーURLquark☜☜☜☜☜☜☜☜クリックして入力します。 2。AO3ミラーアドレスクォーク入り口3。AO3(Archives Our Own)は、2008年10月29日に発売された非営利のファンおよびファンフィクションアーカイブのWebサイトです。4。AO3は、ファンによって作成され、ファンが作成し、ファン小説作家に検閲のない環境を提供することに専念するファンによって設立され、ファンによって運営されています。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

WebStorm Mac版
便利なJavaScript開発ツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。
