php策略模式作用,PHP设计模式之策略模式详解

策略模式,将一组特定的行为和算法封装成类,来适应某些特定的上下文环境,这种模式就是策略模式,策略模式用于算法的自由切换和扩展,它是应用较为广泛的设计模式之一。

59ce1418dca857a75c64af633c534aa1.png<?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策略模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值