PHP;">
PHP
class Camera {
/**
打开录像机
*/
public function turnOn() {
echo 'Turning on the camera.
';
}
/**
关闭录像机
*/
public function turnOff() {
echo 'Turning off the camera.
';
}
/**
转到录像机
@param $degrees
*/
public function rotate($degrees) {
echo 'rotating the camera by ',$degrees,' degrees.
';
}
}
class Light {
/**
开灯
*/
public function turnOn() {
echo 'Turning on the light.
';
}
/**
关灯
*/
public function turnOff() {
echo 'Turning off the light.
';
}
/**
换灯泡
*/
public function changeBulb() {
echo 'changing the light-bulb.
';
}
}
class Sensor {
/**
启动感应器
*/
public function activate() {
echo 'Activating the sensor.
';
}
/**
关闭感应器
*/
public function deactivate() {
echo 'Deactivating the sensor.
';
}
/**
触发感应器
*/
public function trigger() {
echo 'The sensor has been trigged.
';
}
}
class Alarm {
/**
启动警报器
*/
public function activate() {
echo 'Activating the alarm.
';
}
/**
关闭警报器
*/
public function deactivate() {
echo 'Deactivating the alarm.
';
}
/**
拉响警报器
*/
public function ring() {
echo 'Ring the alarm.
';
}
/**
停掉警报器
*/
public function stopRing() {
echo 'Stop the alarm.
';
}
}
/**
门面类
*/
class SecurityFacade {
/录像机/
private $_camera1,$_camera2;
/灯/
private $_light1,$_light2,$_light3;
/感应器/
private $_sensor;
/警报器/
private $_alarm;
public function __construct() {
$this->_camera1 = new Camera();
$this->_camera2 = new Camera();
$this->_light1 = new Light();
$this->_light2 = new Light();
$this->_light3 = new Light();
$this->_sensor = new Sensor();
$this->_alarm = new Alarm();
}
public function activate() {
$this->_camera1->turnOn();
$this->_camera2->turnOn();
$this->_light1->turnOn();
$this->_light2->turnOn();
$this->_light3->turnOn();
$this->_sensor->activate();
$this->_alarm->activate();
}
public function deactivate() {
$this->_camera1->turnOff();
$this->_camera2->turnOff();
$this->_light1->turnOff();
$this->_light2->turnOff();
$this->_light3->turnOff();
$this->_sensor->deactivate();
$this->_alarm->deactivate();
}
}
/**
客户端
*/
class Client {
private static $_security;
/**
Main program.
*/
public static function main() {
self::$_security = new SecurityFacade();
self::$_security->activate();
}
}
Client::main();
?>