常用設(shè)計(jì)模式之責(zé)任鏈模式及其PHP實(shí)現(xiàn)
責(zé)任鏈模式是一種行為型模式,它包含了一些命令對(duì)象和一系列的處理對(duì)象。每一個(gè)處理對(duì)象決定它能處理哪些命令對(duì)象,它也知道如何將它不能處理的命令對(duì)象傳遞給該鏈中的下一個(gè)處理對(duì)象。該模式還描述了往該處理鏈的末尾添加新的處理對(duì)象的方法。
主要角色抽象責(zé)任(Responsibility)角色:定義所有責(zé)任支持的公共方法。具體責(zé)任(Concrete Responsibility)角色:以抽象責(zé)任接口實(shí)現(xiàn)的具體責(zé)任責(zé)任鏈(Chain of responsibility)角色:設(shè)定責(zé)任的調(diào)用規(guī)則類圖<?phpabstract class Responsibility { // 抽象責(zé)任角色 protected $next; // 下一個(gè)責(zé)任角色 public function setNext(Responsibility $l) {$this->next = $l;return $this; } abstract public function operate(); // 操作方法} class ResponsibilityA extends Responsibility { public function __construct() {} public function operate(){if (false == is_null($this->next)) { $this->next->operate();} };}class ResponsibilityB extends Responsibility { public function __construct() {} public function operate(){if (false == is_null($this->next)) { $this->next->operate();} };} $res_a = new ResponsibilityA();$res_b = new ResponsibilityB();$res_a->setNext($res_b);?>
相關(guān)文章:
1. chat.asp聊天程序的編寫方法2. Ajax引擎 ajax請(qǐng)求步驟詳細(xì)代碼3. 解決AJAX返回狀態(tài)200沒有調(diào)用success的問題4. 怎樣才能用js生成xmldom對(duì)象,并且在firefox中也實(shí)現(xiàn)xml數(shù)據(jù)島?5. 詳解瀏覽器的緩存機(jī)制6. XML入門的常見問題(二)7. 基于javaweb+jsp實(shí)現(xiàn)企業(yè)財(cái)務(wù)記賬管理系統(tǒng)8. ASP實(shí)現(xiàn)加法驗(yàn)證碼9. ASP.NET MVC使用異步Action的方法10. Jsp中request的3個(gè)基礎(chǔ)實(shí)踐
