ホームページ > バックエンド開発 > PHPチュートリアル > php デザインパターン 戦略パターン

php デザインパターン 戦略パターン

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-29 09:01:11
オリジナル
975 人が閲覧しました

戦略パターン:

特定のコンテキストに適応するために、特定の一連の動作とアルゴリズムをクラスにカプセル化します。

電子商取引 Web サイト システムで男性と女性のユーザーが異なる製品カテゴリにジャンプする必要がある場合の実際の適用例。すべての広告スロットには異なる広告が表示されます。

UserStrategy.php

<?<span>php
namespace Baobab;

</span><span>interface</span><span> UserStrategy{
    </span><span>function</span><span> showAd();
    </span><span>function</span><span> showCategory();
}
</span>?>
ログイン後にコピー

FemaleUserStrategy.php

<?<span>php
namespace Baobab;

</span><span>class</span> FemaleUserStrategy <span>implements</span><span> UserStrategy{
    </span><span>function</span><span> showAd(){
        </span><span>echo</span> '2016新款女装'<span>;
    }
    </span><span>function</span><span> showCategory(){
        </span><span>echo</span> '女装'<span>;
    }
}

</span>?>
ログイン後にコピー

MaleUserStrategy.php

<?<span>php
namespace Baobab;

</span><span>class</span> MaleUserStrategy <span>implements</span><span> UserStrategy{
    </span><span>function</span><span> showAd(){
        </span><span>echo</span> 'Iphone6s plus'<span>;
    }
    </span><span>function</span><span> showCategory(){
        </span><span>echo</span> '电子产品'<span>;
    }
}

</span>?>
ログイン後にコピー

Page.php

<span><span>namespace Baobab;</span><br>class</span><span> Page{
     </span><span>protected</span><span>$strategy</span><span>;
     </span><span>function</span><span> Index(){
         </span><span>$this</span>->strategy-><span>showAd();
         </span><span>echo</span> '<br/>'<span>;
         </span><span>$this</span>->strategy-><span>showCategory();
     }
     </span><span>function</span> setStrategy(\Baobab\UserStrategy <span>$strategy</span><span>){
         </span><span>$this</span>->strategy = <span>$strategy</span><span>;
     }
}
</span>
ログイン後にコピー

index.php

<span>$page</span> = <span>new</span><span> Baobab\Page();
</span><span>if</span> (<span>isset</span>(<span>$_GET</span>['female'<span>])){
    </span><span>$strategy</span> = <span>new</span><span> Baobab\FemaleUserStrategy();
}</span><span>else</span><span>{
    </span><span>$strategy</span> = <span>new</span><span> Baobab\MaleUserStrategy();
}
</span><span>$page</span>->setStrategy(<span>$strategy</span><span>);
</span><span>$page</span>->Index();
ログイン後にコピー

戦略パターンを使用して IOC と依存関係を実装する反転、制御の反転

以上、PHPの設計パターンと戦略パターンを内容も含めて紹介しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。

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