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

首頁 > 語言 > PHP > 正文

PHP設(shè)計(jì)模式之委托模式定義與用法簡單示例

2024-05-05 00:04:59
字體:
供稿:網(wǎng)友

本文實(shí)例講述了PHP設(shè)計(jì)模式之委托模式定義與用法。分享給大家供大家參考,具體如下:

委托模式:

通過分配或委托至其他對象,委托設(shè)計(jì)模式能夠去除核心對象中的判決和復(fù)雜的功能性。

class Bank{  protected $info;  /*  設(shè)置基本信息  @param string $type 類型。例如"RMB"  @param int $money 利率。例如"0.4%"  */  public function updateBrankInfo($type,$money){    $this->info[$type]=$money;  }  /*  相關(guān)操作(包括存款、取款操作)  @param int $branktype 操作類型  */  public function brankWithdraw($branktype){    $obj=new $branktype;    return $obj->brankMain($this->info);  }}/*委托接口*/interface Delegate{  /*  操作方法:  實(shí)現(xiàn)該接口必須實(shí)現(xiàn)的方法  */  public function brankMain($info);}/*存款操作類*/class brankDeposit implements Delegate{  /*  存款操作  */  public function brankMain($info){    echo $info['deposit'];  }} /*取款操作類*/class brankWithdraw implements Delegate{  /*  取款操作  */  public function brankMain($info){    echo $info['withdraw'];  }}/*客戶端測試代碼:*/$bank=new Bank();$bank->updateBrankInfo("deposit","4000");$bank->updateBrankInfo("withdraw","2000");$bank->brankWithdraw("brankDeposit");echo "<br>";$bank->brankWithdraw("brankWithdraw");

運(yùn)行結(jié)果:

4000
2000

傳統(tǒng)方式:

在傳統(tǒng)方式下,我們需要判斷當(dāng)前操作是取款操作還是存款操作,在分別調(diào)用Bank類中的取款操作和存款操作。

委托模式:

在委托模式下,我們將不需要客戶端的判斷操作,對客戶端來說,需要什么操作,直接傳入操作類型即可,Bank類可自動判斷操作類型,返回相應(yīng)操作的操作結(jié)果。當(dāng)我們的操作類型非常多的時(shí)候,在客戶端用if else判斷無疑是很可怕的,再假如我們在很多地方都要有這塊判斷代碼,我們需要對這些地方的判斷代碼都進(jìn)行修改(加入后來添加的判斷),而采用委托模式,我們僅僅需要在新添加的地方添加相應(yīng)需要的類型即可,不需要改動其它地方的客戶端代碼(很大程度上提高了代碼的復(fù)用性)。


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 凤阳县| 通化市| 台安县| 钟山县| 于田县| 普格县| 潍坊市| 乌苏市| 革吉县| 韶山市| 巴青县| 密云县| 蕲春县| 鱼台县| 榆树市| 马鞍山市| 黔江区| 耒阳市| 贺兰县| 宜城市| 宜黄县| 古蔺县| 金川县| 界首市| 蕲春县| 石台县| 龙泉市| 许昌县| 屏边| 香河县| 包头市| 调兵山市| 寿宁县| 九龙城区| 青浦区| 和硕县| 申扎县| 宿州市| 高密市| 台州市| 水富县|