php设计模式之号令模式

    添加时间:2013-5-21 点击量:
    号令模式:将一个恳求封装为一个对象,从而你可用不合的恳求对客户进行参数化;对恳求列队或记录恳求日记,以及支撑可撤销操纵。
    号令类:

    1.号令角色:声了然一个给所有具体号令类的抽象接口。这是一个抽象角色。

    2.具体号令角色:定义一个接管者和行动之间的弱耦合;实现execute办法,负责调用接管的响应操纵。execute()办法凡是叫做履行办法

    3.客户角色:创建一个具体号令对象并断定其接管者。

    4.恳求者角色:负责调用号令对象履行恳求,相干的办法叫做步履办法。

    5.接管者角色:负责具体实验和履行一个恳求。

    感化:

    1.抽象出待履行的动作以参数化对象。

    2.在不合的时刻指定、分列和履行恳求。

    3.支撑作废操纵

    4.支撑批改日记

     


    <?php
    
    //号令接口
    interface Command{
    public function execute();
    }
    //具体号令
    class ConcreteCommand implements Command{
    private ¥_receiver;
    public function __construct(¥receiver){
    ¥this->_receiver = ¥receiver;
    }
    public function execute(){
    ¥this->_receiver->action();
    }
    }

    //接管者
    class Receiver{
    private ¥_name;
    public function __construct(¥name){
    ¥this->_name = ¥name;
    }
    //步履办法
    public function action(){
    echo ¥this->_name.do action .<br/>;
    }
    }
    //恳求者
    class Invoker{
    private ¥_command;
    public function __construct(¥command){
    ¥this->_command = ¥command;
    }
    public function action(){
    ¥this->_command->execute();
    }
    }

    //客户端
    class Client{
    public static function main(){
    ¥receiver = new Receiver(jaky);
    ¥command = new ConcreteeCommand(¥receiver);
    ¥invoker = new Invoker(¥command);
    ¥invoker->action();
    }
    }
    Client
    ::main();
    ?>



    文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》
    分享到: