Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung des Strategiemusters von PHP-Entwurfsmustern

Detaillierte Erläuterung des Strategiemusters von PHP-Entwurfsmustern

韦小宝
韦小宝Original
2017-11-15 09:03:101580Durchsuche

Strategiemuster kapselt einen bestimmten Satz von Verhaltensweisen und Algorithmen in Klassen, um sich an bestimmte spezifische Kontexte anzupassen. Dieses Muster wird Strategiemuster , Strategiemuster verwendet zum freien Umschalten und Erweitern von Algorithmen. Es ist eines der am weitesten verbreiteten Entwurfsmuster .

Detaillierte Erläuterung des Strategiemusters von PHP-Entwurfsmustern

<?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();

Das Strategiemuster wird zum freien Umschalten und Erweitern von Algorithmen verwendet. Es ist eines der am weitesten verbreiteten Entwurfsmuster. Der Strategiemodus entspricht einer Algorithmusfamilie, die ein bestimmtes Problem löst, und ermöglicht es dem Benutzer, einen Algorithmus aus der Algorithmenfamilie auszuwählen, um ein bestimmtes Problem zu lösen. Gleichzeitig kann der Algorithmus leicht ersetzt oder ein neuer Algorithmus hinzugefügt werden. Solange es um die Kapselung, Wiederverwendung und Umstellung von Algorithmen geht, können Sie die Verwendung des Strategiemusters

Verwandte Empfehlungen in Betracht ziehen:

Detaillierte Erläuterung der PHP-Strategiemusterdefinition und Anwendungsbeispiele

Code-Sharing des PHP-Strategiemusters

StarCraft PHP-Strategiemodus

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Strategiemusters von PHP-Entwurfsmustern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn