首頁  >  文章  >  後端開發  >  PHP設計模式之策略模式詳解

PHP設計模式之策略模式詳解

韦小宝
韦小宝原創
2017-11-15 09:03:101645瀏覽

策略模式,將一組特定的行為和演算法封裝成類,來適應某些特定的上下文環境,這種模式就是策略模式策略模式用於演算法的自由切換和擴展,它是應用較為廣泛的設計模式之一。

PHP設計模式之策略模式詳解

<?php
/*
 *策略模式
 */
interface FlyBehavior
{
    public function fly();
}

class FlyWithWings implements FlyBehavior
{
    public function fly()
    {
        echo "鸭子用翅膀飞行 \n";
    }
}

class FlyWithNo implements FlyBehavior
{
    public function fly()
    {
        echo "鸭子不用翅膀飞行 \n";
    }
}

class Duck
{
    private $_flyBehavior;

    public function performFly()
    {
        $this->_flyBehavior->fly();
    }

    public function setFlyBehavior(FlyBehavior $behavior) //被外部调用设置策略的
    {
        $this->_flyBehavior = $behavior;
    }
}

class RubberDuck extends Duck
{
}

// Test Case
$duck = new RubberDuck();

/*  想让鸭子用翅膀飞行 */
$duck->setFlyBehavior(new FlyWithWings());
$duck->performFly();

/*  想让鸭子不用翅膀飞行 */
$duck->setFlyBehavior(new FlyWithNo());
$duck->performFly();

策略模式用於演算法的自由切換和擴展,它是應用較廣泛的設計模式之一。策略模式對應於解決某一問題的演算法族,允許使用者從該演算法族中任選演算法來解決某一問題,同時可以方便地更換演算法或增加新的演算法。只要涉及演算法的封裝、重複使用和切換都可以考慮使用策略模式

相關推薦:

PHP策略模式定義與用法實例詳解

#PHP策略模式的程式碼分享

星海爭霸之php策略模式

#

以上是PHP設計模式之策略模式詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn