欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php設(shè)計模式 Command(命令模式)

 更新時間:2011年06月26日 10:49:42   作者:  
將一個請求封裝為一個對象從而使你可用不同的請求對客戶進行參數(shù)化,對請求排除或記錄請求日志,以及支持可取消的操作
復(fù)制代碼 代碼如下:

<?php
/**
* 命令模式
*
* 將一個請求封裝為一個對象從而使你可用不同的請求對客戶進行參數(shù)化,對請求排除或記錄請求日志,以及支持可取消的操作
*/
interface Command
{
public function execute();
}

class Invoker
{
private $_command = array();
public function setCommand($command) {
$this->_command[] = $command;
}

public function executeCommand()
{
foreach($this->_command as $command)
{
$command->execute();
}
}

public function removeCommand($command)
{
$key = array_search($command, $this->_command);
if($key !== false)
{
unset($this->_command[$key]);
}
}
}

class Receiver
{
private $_name = null;

public function __construct($name) {
$this->_name = $name;
}

public function action()
{
echo $this->_name." action<br/>";
}

public function action1()
{
echo $this->_name." action1<br/>";
}
}

class ConcreteCommand implements Command
{
private $_receiver;
public function __construct($receiver)
{
$this->_receiver = $receiver;
}

public function execute()
{
$this->_receiver->action();
}
}

class ConcreteCommand1 implements Command
{
private $_receiver;
public function __construct($receiver)
{
$this->_receiver = $receiver;
}

public function execute()
{
$this->_receiver->action1();
}
}

class ConcreteCommand2 implements Command
{
private $_receiver;
public function __construct($receiver)
{
$this->_receiver = $receiver;
}

public function execute()
{
$this->_receiver->action();
$this->_receiver->action1();
}
}


$objRecevier = new Receiver("No.1");
$objRecevier1 = new Receiver("No.2");
$objRecevier2 = new Receiver("No.3");

$objCommand = new ConcreteCommand($objRecevier);
$objCommand1 = new ConcreteCommand1($objRecevier);
$objCommand2 = new ConcreteCommand($objRecevier1);
$objCommand3 = new ConcreteCommand1($objRecevier1);
$objCommand4 = new ConcreteCommand2($objRecevier2); // 使用 Recevier的兩個方法

$objInvoker = new Invoker();
$objInvoker->setCommand($objCommand);
$objInvoker->setCommand($objCommand1);
$objInvoker->executeCommand();
$objInvoker->removeCommand($objCommand1);
$objInvoker->executeCommand();

$objInvoker->setCommand($objCommand2);
$objInvoker->setCommand($objCommand3);
$objInvoker->setCommand($objCommand4);
$objInvoker->executeCommand();

相關(guān)文章

  • php下安裝配置fckeditor編輯器的方法

    php下安裝配置fckeditor編輯器的方法

    以下是我學(xué)習(xí)PHP時,總結(jié)一些安裝配置fckeditor在線編輯器最實用的方法。其實調(diào)用fckeditor也只有兩種調(diào)用方法。有什么大家可以在我博客上留言,我有時間會幫大家解答的。
    2011-03-03
  • PHP通過串口實現(xiàn)發(fā)送短信

    PHP通過串口實現(xiàn)發(fā)送短信

    本文給大家詳細介紹了,如何使用php通過串口來實現(xiàn)發(fā)送短信的思路以及具體的實現(xiàn)代碼,十分的實用,有需要的小伙伴可以參考下。
    2015-07-07
  • highchart數(shù)據(jù)源縱軸json內(nèi)的值必須是int(詳解)

    highchart數(shù)據(jù)源縱軸json內(nèi)的值必須是int(詳解)

    下面小編就為大家?guī)硪黄猦ighchart數(shù)據(jù)源縱軸json內(nèi)的值必須是int(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Laravel模板引擎Blade中section的一些標簽的區(qū)別介紹

    Laravel模板引擎Blade中section的一些標簽的區(qū)別介紹

    這篇文章主要介紹了Laravel模板引擎Blade中section的一些標簽的區(qū)別介紹,本文講解了@yield 與 @section、@show 與 @stop、@append 和 @override的區(qū)別,需要的朋友可以參考下
    2015-02-02
  • 淺談Coreseek、Sphinx-for-chinaese、Sphinx+Scws的區(qū)別

    淺談Coreseek、Sphinx-for-chinaese、Sphinx+Scws的區(qū)別

    下面小編就為大家?guī)硪黄獪\談Coreseek、Sphinx-for-chinaese、Sphinx+Scws的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • php設(shè)計模式 State (狀態(tài)模式)

    php設(shè)計模式 State (狀態(tài)模式)

    允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為,對象看起來似乎修改了它所屬的類
    2011-06-06
  • php $_ENV為空的原因分析

    php $_ENV為空的原因分析

    $_ENV記載了一些系統(tǒng)環(huán)境變量(因為牽扯到實際的操作系統(tǒng),所以不可能給出$_ENV的完整列表)。
    2009-06-06
  • Ajax PHP簡單入門教程代碼

    Ajax PHP簡單入門教程代碼

    Ajax 由 HTML、Javascrīpt&#8482; 技術(shù)、DHTML 和 DOM 組成,這一杰出的方法可以將笨拙的 Web 界面轉(zhuǎn)化成交互性的 Ajax 應(yīng)用程序。對于Ajax,最核心的一個對象是XMLHttpRequest,所有的Ajax操作都離不開對這個對象的操作。
    2008-04-04
  • 基于PHPExcel的常用方法總結(jié)

    基于PHPExcel的常用方法總結(jié)

    本篇文章是對PHPExcel的常用方法進行詳細的總結(jié)與分析,需要的朋友參考下
    2013-06-06
  • php解決約瑟夫環(huán)算法實例分析

    php解決約瑟夫環(huán)算法實例分析

    這篇文章主要介紹了php解決約瑟夫環(huán)算法,結(jié)合實例形式分析了約瑟夫環(huán)問題的原理、解決方法及相關(guān)算法實現(xiàn)技巧,需要的朋友可以參考下
    2019-09-09

最新評論