代理模式
- 在客户端和实体之间建立一个代理对象(proxy),客户端对实体进行操作全部委派给代理对象,隐藏具体的实现,例如,mysql的主从结构,不修改业务代码,在代理中实现读写分离
- Proxy还可以与业务代码分离,部署到另外的服务器,业务代码中通过rpc来委派任务
class Proxy {
public function getUserName($id){
$db = Factory::getDatabase('slave');
$db->query("select * from user where id =$id");
}
public function setUserName(){
$db = Factory::getDatabase('master');
$db->query("update user set name=$name whereid=$id limit 1");
}
}
// 其实还应该封装下,在执行语句的时候自动根据语句连接主从库