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 $database;
protected $client; 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) public function setColleague(Subsystem\Database $db, Subsystem\Client $cl, Subsystem\Server $srv)
{ {
$this->database = $db; $this->database = $db;
@ -32,19 +37,31 @@ class Mediator implements MediatorInterface
$this->client = $cl; $this->client = $cl;
} }
/**
* make request
*/
public function makeRequest() public function makeRequest()
{ {
$this->server->process(); $this->server->process();
} }
/**
* query db
*
* @return mixed
*/
public function queryDb() public function queryDb()
{ {
return $this->database->getData(); return $this->database->getData();
} }
/**
* send response
*
* @param string $content
*/
public function sendResponse($content) public function sendResponse($content)
{ {
$this->client->output($content); $this->client->output($content);
} }
} }

View File

@ -13,15 +13,15 @@ interface MediatorInterface
* *
* @param string $content * @param string $content
*/ */
function sendResponse($content); public function sendResponse($content);
/** /**
* makes a request * makes a request
*/ */
function makeRequest(); public function makeRequest();
/** /**
* queries the DB * queries the DB
*/ */
function queryDb(); public function queryDb();
} }

View File

@ -9,15 +9,21 @@ use DesignPatterns\Mediator\Colleague;
*/ */
class Client extends Colleague class Client extends Colleague
{ {
/**
* request
*/
public function request() public function request()
{ {
$this->getMediator()->makeRequest(); $this->getMediator()->makeRequest();
} }
/**
* output content
*
* @param string $content
*/
public function output($content) public function output($content)
{ {
echo $content; echo $content;
} }
} }

View File

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

View File

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