您的位置:首页 > 编程语言

工厂模式结合RPC进行多节点数据调用的代码套路

2017-02-20 17:13 288 查看


比如我有2个业务类:GameNews和SportsNews。

这我们网站的2个频道,这2个频道很可能都是不同团队来开发维护的。

代码示例:

<?php

class SportsNews
{
static function loadNews($id)
{
return ['news_id'=>$id,'news_title'=>'体育新闻','news_time'=>'2017-02-20'];
}
}




这个时候如果我们做一个子频道就开发一套代码,最后我们的代码会越来越乱。

我就需要通过设计模式把代码弄成同一套,但是最后调用出来的数据不通过。

现在我们就来利用简单的工厂设计模式,把远程调用RPC代码整合。

NewsFactory.php

<?php

//引入我们的2个业务类
require_once './classes/SportsNews.php';
require_once './classes/GameNews.php';
require_once 'RpcClient.php';

class NewsFactory
{
static function instance($name,$remote=false)
{
if ($remote){
RpcClient::config($remote);
RpcClient::instance($name);
}

if ($name == 'GameNews'){
return GameNews;
}elseif ($name == 'SportsNews'){
return SportsNews;
}
}
}


客户端通过工厂方法统一调用:

require_once 'NewsFactory.php';

$obj = NewsFactory::instance('GameNews');
var_export($obj->loadNews(123));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐