Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP设计思想之代理模式与读写分离的实践

PHP设计思想之代理模式与读写分离的实践

*文
*文asal
2017-12-25 10:05:321545semak imbas

编程中有众多优秀的模式设计思想,本文通过使用代理模式实现读写分离,来让大家对代理模式有一定的了解。

代理这个词,相信很多同学应该不陌生了吧!

1、从非程序来说,代理生活中最常见的就是朋友圈刷屏的各种商品等等。

2、从服务器架构上来说,代理就是转发,好比你和第三者之间需要沟通,但是你还不能直接和他交流,你要靠别人帮你带话,这种中间人就是代理了!

3、从设计模式来说和以上两种类似也就是相等于中间件,然后通过rpc从代理上获取数据


首先我们我们梳理一下使用代理模式做读写分离的步骤

1)接口类必须(统一规范)

首先我们要定义一个接口文件

interface IProxy
{
function getThing($id);
function setThing($id, $name);
}

这样做的目的就是统一规划,按照面向对象编程规范去做!

《PHP面向对象编程规范》

2)实现接口方法

class Proxy implements IProxy
{
//如果是读操作就用连接从数据库
public function getThing($id)
{
$db = Factory::getDatabase('slave'); //工厂模式封装(后面讲)
$db->query("select name from user where id =$id limit 1");
}
//如果是写操作就连接主数据库
public function setThing($id, $name)
{
    $db = Factory::getDatabase('master');  //工厂模式封装(后面讲)
    $db->query("update user set name = $name where id =$id limit 1");
}
}

这样呢简单的就实现了代理模式的数据读写分离的操作!当然这只是对莫一个模型的操作,小伙伴们可以自行封装多个模型,只要严格按照面向对象编程规范就可以了!


相关推荐:

php设计模式之适配器模式详解

PHP设计模式之迭代器模式详解

PHP设计模式之装饰器模式详解

Atas ialah kandungan terperinci PHP设计思想之代理模式与读写分离的实践. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:PHP7源码之CG和EG宏的详解Artikel seterusnya:AJAX检测用户名是否唯一