ホームページ > php教程 > php手册 > PHP 設計パターン ------- (1) 戦略パターン

PHP 設計パターン ------- (1) 戦略パターン

WBOY
リリース: 2016-07-21 14:52:56
オリジナル
1175 人が閲覧しました

1. なぜデザインパターンを学ぶ必要があるのか​​。

私の最後のプロジェクトは、アプリのインターフェースを作ることでした。スケジュールがタイトだったので、上司が急いでいたので、プロジェクトが完了したとき、私が何万行ものコードを書いていたことがわかりました。コードの品質はそうでした。そして、インターフェイスを呼び出す開発者が私のところに来て、特定のインターフェイスが間違っていると言いました。デバッグに戻ると、間違ったコード行を書いていたことがわかりました。しかし、6 つまたは 7 つのコントローラーに同じステートメントがあります。その結果、これらの 6 つまたは 7 つのファイルを見つけて、それらを 1 つずつ変更する必要があります。私は唖然としましたが、これによってコードの品質が向上し、顧客が要件を変更するときに歯を食いしばることを防ぐことができるのです (誰でもこの経験があるはずです、笑)。

2.戦略モード

1.コンセプト

戦略モード: アルゴリズムのファミリーを定義し、それらを個別にカプセル化して、アルゴリズムを使用する顧客に関係なくアルゴリズムを変更できるようにします。 (概念が難しすぎて理解できません)

2. 戦略モードがある理由

ジョーが働いている会社は、アヒルのシミュレーション ゲームを作成しました。ゲームにはさまざまなアヒルが登場します。鳴くものもあれば、飛ぶものもいます。

コード:

リーリー
このように、Duck クラスを継承するサブクラスは飛行動作を実装できますが、おもちゃのアヒルが飛行動作できないとしたら、それは冗談ではないでしょうか? 親クラスの fly メソッドをサブクラスでオーバーライドできるので、異なる特定のサブクラスに異なる動作を与えることができると言う人もいるでしょう。しかしこの場合、多くのコードが重複することになるのではないでしょうか?誰もがそれをそのまま真似すると思うので、どこかで問題が発生すると、すべてを再度変更する必要があり、いつでも上司が要件を変更すると、私たちは直接疲弊します。

デザインパターンの原則は次のとおりです:

1. アプリケーション内で変更が必要な可能性のある領域を見つけて分離し、変更する必要のないコードと混合しないでください。

2. 実装のためではなく、インターフェースのためのプログラム。

3. より多くの組み合わせを使用し、継承を減らします。

3.特定のコード

リーリー
最後に、デザインパターンは一種のアイデアであり、機械的に適用する必要はありません。そうしないと逆効果になります。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート