PHP草根论之设计模式-命令模式

本文介绍了一种PHP设计模式的应用案例,通过定义通用接口并利用单独类进行操作,实现了不同业务逻辑间的灵活交互。

关于模式本身的概念,请参考网上其它文章

此处只讨论在PHP实际开发过程中的应用


草根观点:

1.不要纠结命令/执行 这些概念

2.本质上是将 一组对象(多个类),中的共通接口独立出来,用一个单独的类来对接

3.为了表明具体的对象有这些共通方法,你得定义一个接口

//名字随便起的

interface OperationsInterface{

  //定义了两个共通的接口

  public function actionA();

  public function actionB();

}


//定义X业务逻辑类

class LogicalX implements OperationsInterface {

    public function actionA(){

      //具体执行A操作

    }

    public function actionB{

      //具体执行B操作

    }

}


//定义Y业务逻辑类 LogicalY,略


4.我们为了actionA,actionB定义一个单独的操作类, 类中定义了一个方法,用来 记录 具体的执行对象,同时定义了每一个共通接口

class OperationsM{

  private $_logical;  //具体的业务逻辑对象


  //记录具体的业务对象

  public function setLogical(OperationsInterface $logical){

    $this->_logical=$logical;

  }

 //实现操作A

   public function actionA(){

      $this->_logical->actionA();

   }

    //实现操作B

   public function actionB(){

      $this->_logical->actionB();

    }

}

5.如果你需要另一组操作集合,也可以定义 OperationsN,... 其它的操作集合类.

6.如果有两个以上的操作集合类,那你还得为他们定义 父类/接口, 用来定义 那个set操作. 我感觉 父类比较好. 当然了,如果操作集体类的个数较少,直接写也成. 这种事情我们常干.

7.控制逻辑中可以如下 书写代码段了

  $logical=new LogicalX;

  $operation=new OperationsM;

  $operation->setLogical($logical);

  $operation->actionA();

  $operation->actionB();


明白了么? 很纠结? 我学习的时候也很纠结.  这业务得复杂到什么程度才能用到这些类啊


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值