php设计模式之策略模式

来源:互联网 发布:雉兔同笼编程 编辑:程序博客网 时间:2024/06/04 18:02

引导1: 什么是策略模式? 策略模式顾名思义就是针对一个业务有不同的策略,可以根据使用环境,选择不同的算法进行业务处理。

引导2:应用案例:商城根据不同级别的会员,进行相应的打折,游戏中根据游戏的角色,打怪时也会产生不同的效果

接下来以游戏为例来描述策略模式(感兴趣的同学可以自行发挥加入防御,移动等技能)
上代码:

<?php//游戏角色接口interface gameRole{    //攻击技能    public function attack($blood);}//Master  法师class Master implements gameRole{    //攻击力 50    private $attack;    public function __construct()    {        $this->attack = 50;    }    public function attack($blood)    {        echo '当前怪物还剩'.($blood-$this->attack).'血量';    }}//fighter  格斗家class fighter implements gameRole{    //攻击力  80    private $attack;    public function __construct()    {        $this->attack = 80;    }    public function attack($blood)    {        echo '当前怪物还剩'.($blood-$this->attack).'血量';    }}//gunmen  枪手class gunmen implements gameRole{    //攻击力 60    private $attack;    public function __construct()    {        $this->attack = 60;    }    public function attack($blood)    {        echo '当前怪物还剩'.($blood-$this->attack).'血量';    }}//战斗class fight{    private $role;    public function __construct($role)    {        $this->role = $role;    }    public function setBoss($blood)    {        $this->role->attack($blood);    }}//创建一个格斗家 $fighter = new fighter();//发起战斗$fight = new fight($fighter);//传入一个血量为500的大boss$fight ->setBoss(500);

输出 :当前怪物还剩420血量