php設計模式之委託模式

2021-09-25 02:40:09 字數 1209 閱讀 3101

php設計模式之委託模式

使用委託模式目的是消除潛在的、難以控制的if/else語句。

<?php/**

* 原來的程式寫法

* @var playlist */

$playlist = new

playlist();

$playlist->addsong('/home/aaron/music/aa.***', 'brr');

$playlist->addsong('/home/aaron/music/bb.***', 'goodbye');

if ($exttype == 'pls')

else

上述僅僅是乙個示例,如果有更多的type,那麼這裡的if/else將會有多個並且每次增加型別需要增加方法。而接下來的委託模式將改變這個現狀。委託模式的類在需求改變時候需要修改。

/*

** 委託模式的類

*/class

newplaylist

playlist";

$this->__typeobject = new

$object

; }

public

function addsong($location, $title

)

public

function

getplaylist()

}

/*

** m3u delegate

*/class

m3uplaylistdelegate

/*other function

*/}/**

* pls delegate

*/class

plsplaylistdelegare

}

每增加一種型別只需要增加乙個對應的類即可,並且注意寫法要統一,具體使用方法中將不存在if/else的判斷。示例如下。

/*

* * 如何使用 */

$exttype = 'pls';//

$exttyle = 'm3u';

$playlist = new newplaylist($exttype

);$playlistcontent = $playlist->getplaylist();

PHP設計模式系列 委託模式

通過分配或委託其他物件,委託設計模式能夠去除核心物件中的判決和複雜的功能性。php view plain copy print?委託模式 去除核心物件中的判決和複雜的功能性 class cd public function play song public function playmp4 song...

PHP設計模式系列 委託模式

通過分配或委託其他物件,委託設計模式能夠去除核心物件中的判決和複雜的功能性。委託模式 去除核心物件中的判決和複雜的功能性 class cd public function play song public function playmp4 song oldcd new cd oldcd addson...

IOS設計模式之委託模式

委託模式從gof裝飾模式 decorator 介面卡模式 adapter 模板方法 template method 模式等演變而來,幾乎每乙個應用都會或多或少地用到委託模式,不只是cocoa touch框架,在cocoa中,委託模式也得到了廣泛的應用。include usingnamespace s...