编程中的那些套路——关于策略模式

该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP

今天讲讲策略模式,策略模式 和工厂模式十分相像(或者说在代码逻辑层面,他们是一样的)。

但策略模式与工厂模式有一点很重要的区别:

工厂模式:我们着眼于得到对象,并操作对象,

策略模式:我们着重得到对象某方法的运行结果

看代码

<?php
 
//策略功能接口
 
interface Strategy {
 
    public function help();
 
}
 
//实际对外接口
 
interface Factory{
 
    public function action();
 
}
 
//打120
 
class Call120 implements Strategy{
 
    public function help(){
 
        echo "打120";
 
    }
 
}
 
//人工呼吸
 
class Firstaid implements Strategy{
 
    public function help(){
 
        echo '人工呼吸';
 
    }
 
}
 
//实际对外的人工呼吸接口
 
class Helpaid implements Factory{
 
    protected $object;
 
    public function action(){
 
        $this->object = new Firstaid();
 
        $this->object->help();
 
    }
 
}
 
//实际对外的120接口
 
class Help120 implements Factory{
 
    public $object;
 
    public function action(){
 
        $this->object = new Call120();
 
        $this->object->help();
 
    }
 
}
 
$Help = new Help120();
 
$Help->action();//output 打120
 
?>
 

根据不同的情况使用不同的策略,即策略模式,与工厂模式确实很像,但他确确实实不是工厂模式,重点看人如何定义它,为了操作对象即为工厂模式,为了获取结果即为策略模式。

该文章属于《编程中的那些经典套路——设计模式汇总》系列

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值