一、什么是代理模式
客户端对目标的操作,委派给代理对象(proxy)处理,代理对象相当于一个中介;
二、代理模式作用
隐藏目标对象,不对外暴露,解耦代码业务
三、具体实现
interface UserProxy
{
public function getUserName($id);
public function setUserName($id, $name);
}
class Proxy implements UserProxy
{
public function getUserName($id)
{
$db = Factory::getDatabase('slave'); // 从库读取
return $db->query("select name from user where id = $id limit 1");
}
public function setUserName($id, $name)
{
$db = Factory::getDatabase('master'); // 主库写入
return $db->query("update user set name = $name id = $id");
}
}
// 业务调用
$proxy = new Proxy();
$proxy->getUserName($id);
$proxy->setUserName($id, $name);

本文介绍了代理模式的概念及其在软件开发中的应用。通过一个简单的例子展示了如何使用代理模式来隐藏目标对象并实现读写分离,以此达到解耦代码业务的目的。

被折叠的 条评论
为什么被折叠?



