您的位置:首页 > 编程语言 > PHP开发

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

2014-10-15 17:49 441 查看
关于模式本身的概念,请参考网上其它文章

此处只讨论在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();

明白了么? 很纠结? 我学习的时候也很纠结. 这业务得复杂到什么程度才能用到这些类啊
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: