小夥伴們你們的小可愛逗比又上線了!!!
最近感覺帶表情的文章看多了,寫篇文章不放上幾十個表情感覺自己都寫不出來什麼!!!原諒你們的小可愛放蕩。。。不羁。。。愛誰誰!!!
好了好了,開始上課了,今天你們的劉老師要講的内容是?對對對!!!最後面那個同學說的對,就是設計模式之代理模式額外加讀寫分離設計!下課别走啊,剛才哪位同學!!!
代理這個詞,相信很多同學應該不陌生了吧!
1、從非程式來說,代理生活中最常見的就是朋友圈刷屏的各種商品等等。
2、從伺服器架構上來說,代理就是轉發,好比你和第三者之間需要溝通,但是你還不能直接和他交流,你要靠别人幫你帶話,這種中間人就是代理了!
3、從設計模式來說和以上兩種類似也就是相等于中間件,然後通過rpc從代理上擷取資料
首先我們我們梳理一下使用代理模式做讀寫分離的步驟
1)接口類必須(統一規範)
首先我們要定義一個接口檔案
interface IProxy
{
function getThing($id);
function setThing($id, $name);
}
這樣做的目的就是統一規劃,按照面向對象程式設計規範去做!
<a href="https://link.jianshu.com?t=https://mp.weixin.qq.com/s?__biz=MzI3MjIyODU0Ng==&mid=2247483885&idx=1&sn=dd9751ebedcf6f3d557ff12533732497&chksm=eb348840dc43015695bec73a4824d6415f76286b83202cfb2cdaf88536cf2793574e6de7cb4f&scene=21#wechat_redirect" target="_blank">《PHP面向對象程式設計規範》</a>
2)實作接口方法
class Proxy implements IProxy
//如果是讀操作就用連接配接從資料庫
public functiongetThing($id)
$db = Factory::getDatabase('slave'); //工廠模式封裝(後面講)
$db->query("select name from user where id =$id limit 1");
//如果是寫操作就連接配接主資料庫
publicfunctionsetThing($id, $name)
$db = Factory::getDatabase('master');//工廠模式封裝(後面講)
$db->query("update user set name = $name where id =$id limit 1");
這樣呢簡單的就實作了代理模式的資料讀寫分離的操作!當然這隻是對莫一個模型的操作,小夥伴們可以自行封裝多個模型,隻要嚴格按照面向對象程式設計規範就可以了!