cs Mediator

This commit is contained in:
Dominik Liebler 2013-09-13 14:36:29 +02:00
parent 69aa0ae5b5
commit 4b66417509
5 changed files with 36 additions and 10 deletions

View File

@ -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);
}
}
}

View File

@ -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();
}

View File

@ -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;
}
}

View File

@ -9,10 +9,11 @@ use DesignPatterns\Mediator\Colleague;
*/
class Database extends Colleague
{
/**
* @return string
*/
public function getData()
{
return "World";
}
}

View File

@ -9,7 +9,9 @@ use DesignPatterns\Mediator\Colleague;
*/
class Server extends Colleague
{
/**
* process on server
*/
public function process()
{
$data = $this->getMediator()->queryDb();