mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-09-25 22:09:23 +02:00
40 lines
675 B
PHP
40 lines
675 B
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace DesignPatterns\Structural\Facade;
|
|
|
|
class Facade
|
|
{
|
|
/**
|
|
* @var OperatingSystem
|
|
*/
|
|
private $os;
|
|
|
|
/**
|
|
* @var Bios
|
|
*/
|
|
private $bios;
|
|
|
|
/**
|
|
* @param Bios $bios
|
|
* @param OperatingSystem $os
|
|
*/
|
|
public function __construct(Bios $bios, OperatingSystem $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();
|
|
}
|
|
}
|