PHP 設計模式 職責鏈模式

2021-09-01 22:58:50 字數 1622 閱讀 8585

author:咔咔

wechat:fangkangfk

什麼是職責鏈模式:

職責鏈模式是包含了一些命令物件和一些處理物件,每個處理物件決定他能處理的那些命令物件,它也知道把自己不能處理的命令物件移交給下乙個處理物件

白話解釋:

這個案例一共三個職位,是經理,總監,總經理,職位就類似命令物件,請假這件事就類似命令物件,當經理處理不了的事情就需要移交給總監,總監處理的不了的事情就需要移交給總經理,這也就是我們的職責鏈模式

下來我們分段來解釋這個案例

首先這個案例分為三部分第一部分是宣告的屬性,第二部分是抽象類裡邊設定上下級關係,抽象方法,第三部分就是業務方面的**

<?php

/** * created by phpstorm.

* user: administrator

* date: 2018/11/26

* time: 14:04

*///申請model

class request

//抽象管理者

abstract class manager

//設定管理者上級

public function setheader(manager $_mana)

//申請請求

}//經理

class commonmanager extends manager

: 數量被批准。

"; }

else}}

}//總監

class majordomo extends manager

: 數量被批准。

"; }

else}}

}//總經理

class generalmanager extends manager

: 數量被批准。

"; }

else if($_req->requesttype=="加薪" && $_req->num <= 500)

: 數量被批准。

"; }

else if($_req->requesttype=="加薪" && $_req->num>500)

: 數量再說吧。

"; }

}}header("content-type:text/html;charset=utf-8");

//--------------------職責鏈模式----------------------

$jingli = new commonmanager("李經理");

$zongjian = new majordomo("郭總監");

$zongjingli = new generalmanager("孫總");

//設定直接上級

$jingli->setheader($zongjian);

$zongjian->setheader($zongjingli);

//申請

$req1 = new request();

$req1->requesttype = "請假";

$req1->requestcontent = "小菜請假!";

$req1->num = 20;

php設計模式 四 職責鏈模式

created by phpstorm.user insei date 2019 1 27 time 7 44 pm 職責鏈模式 又叫做責任鏈模式 包含了一些命令物件和一些處理物件,每個處理物件決定它能 出來那些物件,它也知道把自己不能處理的命令交給下乙個處理物件,該模式還描述了往該鏈新增 新的處理...

設計模式 職責鏈模式

2008年08月17日 星期日 下午 04 28 using system using system.collections.generic using system.text public officer officer o public abstract void deal action a c...

設計模式 職責鏈模式

1 request.h ifndef request h define request h include include using namespace std class request 請求類定義 endif request h 2 manager.h ifndef manager h def...