国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php設計模式之命令模式使用示例

2024-09-04 11:46:51
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php設計模式之命令模式使用示例,命令模式將一個請求封裝為一個對象,從而你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日志,以及支持可撤銷操作。

命令類:

1.命令角色:聲明了一個給所有具體命令類的抽象接口。這是一個抽象角色。

2.具體命令角色:定義一個接受者和行為之間的弱耦合;實現execute方法,負責調用接受的相應操作。execute()方法通常叫做執行方法

3.客戶角色:創建一個具體命令對象并確定其接受者。

4.請求者角色:負責調用命令對象執行請求,相關的方法叫做行動方法。

5.接受者角色:負責具體實施和執行一個請求。

作用:

1.抽象出待執行的動作以參數化對象。

2.在不同的時刻指定、排列和執行請求。

3.支持取消操作

4.支持修改日志

代碼如下:

  1. <?php 
  2. //命令接口 
  3. interface Command{ 
  4.      public function execute(); 
  5. //具體命令 
  6. class ConcreteCommand implements Command{ 
  7.      private $_receiver
  8.      public function __construct($receiver){ 
  9.           $this->_receiver = $receiver
  10.      } 
  11.      public function execute(){ 
  12.           $this->_receiver->action(); 
  13.      } 
  14. //接受者 
  15. class Receiver{ 
  16.      private $_name
  17.      public function __construct($name){ 
  18.           $this->_name = $name
  19.      } 
  20.      //行動方法 
  21.      public function action(){ 
  22.           echo $this->_name.'do action .<br/>'
  23.      } 
  24. //請求者 
  25. class Invoker{ 
  26.      private $_command
  27.      public function __construct($command){ 
  28.           $this->_command = $command
  29.      } 
  30.      public function action(){ 
  31.           $this->_command->execute(); 
  32.      } //Vevb.com 
  33. //客戶端 
  34. class  Client{ 
  35.      public static function main(){ 
  36.           $receiver = new Receiver('jaky'); 
  37.           $command = new ConcreteeCommand($receiver); 
  38.           $invoker = new Invoker($command); 
  39.           $invoker->action(); 
  40.      } 
  41. Client::main(); 
  42. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漠河县| 阜新市| 沙田区| 长白| 买车| 鹰潭市| 太保市| 芮城县| 鄂托克旗| 泰来县| 和平区| 苗栗市| 维西| 全椒县| 平安县| 犍为县| 徐水县| 桂东县| 辛集市| 吴桥县| 巴林右旗| 苍溪县| 莎车县| 临朐县| 遵化市| 金门县| 蓬溪县| 徐州市| 勃利县| 盱眙县| 苍山县| 老河口市| 雅江县| 洞口县| 平阴县| 乌拉特后旗| 商城县| 霸州市| 临安市| 德州市| 桃源县|