Посмотрел примеры, и так и не понял, должны ли внутри фасада создаваться объекты.
Примеры на php, взяты из статей.
class Facade
{
public function transfer($amount)
{
$Bank = new Bank();
$Client = new Client();
$Log = new Log();
$Bank->OpenTransaction();
$Client->OpenTransaction();
$Log->logTransaction('Transaction open');
$Bank->transferMoney(-$amount);
$Log->logTransaction('Transfer money from bank');
$Client->transferMoney($amount);
$Log->logTransaction('Transfer money to client');
$Bank->CloseTransaction();
$Client->CloseTransaction();
$Log->logTransaction('Transaction close');
}
}
или правильно делать так
class Facade
{
private $os;
private $bios;
public function __construct(BiosInterface $bios, OsInterface $os)
{
$this->bios = $bios;
$this->os = $os;
}
public function turnOn()
{
$this->bios->execute();
$this->bios->waitForKeyPress();
$this->bios->launch($this->os);
}
public function turnOff()
{
$this->os->halt();
$this->bios->powerDown();
}
}
Заранее благодарю.