mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-05-20 21:39:51 +02:00
cs Mediator
This commit is contained in:
parent
69aa0ae5b5
commit
4b66417509
@ -25,6 +25,11 @@ class Mediator implements MediatorInterface
|
||||
protected $database;
|
||||
protected $client;
|
||||
|
||||
/**
|
||||
* @param Subsystem\Database $db
|
||||
* @param Subsystem\Client $cl
|
||||
* @param Subsystem\Server $srv
|
||||
*/
|
||||
public function setColleague(Subsystem\Database $db, Subsystem\Client $cl, Subsystem\Server $srv)
|
||||
{
|
||||
$this->database = $db;
|
||||
@ -32,19 +37,31 @@ class Mediator implements MediatorInterface
|
||||
$this->client = $cl;
|
||||
}
|
||||
|
||||
/**
|
||||
* make request
|
||||
*/
|
||||
public function makeRequest()
|
||||
{
|
||||
$this->server->process();
|
||||
}
|
||||
|
||||
/**
|
||||
* query db
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function queryDb()
|
||||
{
|
||||
return $this->database->getData();
|
||||
}
|
||||
|
||||
/**
|
||||
* send response
|
||||
*
|
||||
* @param string $content
|
||||
*/
|
||||
public function sendResponse($content)
|
||||
{
|
||||
$this->client->output($content);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -13,15 +13,15 @@ interface MediatorInterface
|
||||
*
|
||||
* @param string $content
|
||||
*/
|
||||
function sendResponse($content);
|
||||
public function sendResponse($content);
|
||||
|
||||
/**
|
||||
* makes a request
|
||||
*/
|
||||
function makeRequest();
|
||||
public function makeRequest();
|
||||
|
||||
/**
|
||||
* queries the DB
|
||||
*/
|
||||
function queryDb();
|
||||
public function queryDb();
|
||||
}
|
||||
|
@ -9,15 +9,21 @@ use DesignPatterns\Mediator\Colleague;
|
||||
*/
|
||||
class Client extends Colleague
|
||||
{
|
||||
|
||||
/**
|
||||
* request
|
||||
*/
|
||||
public function request()
|
||||
{
|
||||
$this->getMediator()->makeRequest();
|
||||
}
|
||||
|
||||
/**
|
||||
* output content
|
||||
*
|
||||
* @param string $content
|
||||
*/
|
||||
public function output($content)
|
||||
{
|
||||
echo $content;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,10 +9,11 @@ use DesignPatterns\Mediator\Colleague;
|
||||
*/
|
||||
class Database extends Colleague
|
||||
{
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getData()
|
||||
{
|
||||
return "World";
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,7 +9,9 @@ use DesignPatterns\Mediator\Colleague;
|
||||
*/
|
||||
class Server extends Colleague
|
||||
{
|
||||
|
||||
/**
|
||||
* process on server
|
||||
*/
|
||||
public function process()
|
||||
{
|
||||
$data = $this->getMediator()->queryDb();
|
||||
|
Loading…
x
Reference in New Issue
Block a user