在軟體開發中,也有一種設計模式可以提供與代購網站類似的功能。由於某些原因,客戶端不想或不能直接存取一個物件,此時可以透過稱為「代理」的第三者來實現間接訪問,該方案對應的設計模式稱為代理模式
給某一個物件提供一個代理或占位符,並由代理物件來控制對原對象的訪問
<?php /* * 代理模式 */ //代理抽象接口 interface shop { public function buy($title); } //原来的CD商店,被代理对象 class CDShop implements shop { public function buy($title) { echo "购买成功,这是你的《{$title}》唱片" . PHP_EOL; } } //CD代理 class Proxy implements shop { public function buy($title) { $this->go(); $CDshop = new CDshop; $CDshop->buy($title); } public function go() { echo "跑去香港代购" . PHP_EOL; } } class client { public static function shoping($goods) { $proxy = new Proxy; $proxy->buy($goods); } } //许多年后你想买张 醒着做梦 找不到CD商店了,和做梦似的,不得不找了个代理去香港帮你代购。 client::shoping("醒着做梦");
代理模式是常用的結構型設計模式之一,它為物件的間接存取提供了一個解決方案,可以對物件的訪問進行控制,設計模式適合有經驗或基本良好的人群去看
相關推薦:
以上是PHP設計模式之代理模式詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!