>  기사  >  백엔드 개발  >  PHP 디자인 패턴의 전략 패턴에 대한 자세한 설명

PHP 디자인 패턴의 전략 패턴에 대한 자세한 설명

韦小宝
韦小宝원래의
2017-11-15 09:03:101643검색

Strategy Pattern은 특정 상황에 맞게 특정 행동과 알고리즘 세트를 캡슐화합니다. 이 패턴은 Strategy Pattern이며 알고리즘의 자유로운 전환과 확장에 사용됩니다. 더 널리 사용되는 디자인 패턴.

<?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 디자인 패턴의 전략 패턴에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.