Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Dekorationsmodus

PHP-Dekorationsmodus

WBOY
WBOYOriginal
2016-08-08 09:23:571126Durchsuche

Dekorationsmodus-Transformatoren

(1) Abstrakte Bauklasse Tansform

interface Transform
{
	public function move();
}

(2) Betonbauklasse Auto

final class Car implements Transform
{
	public function __construct() {
		echo '变形金刚是一辆汽车';
	}
	public function move() {
		echo '在陆地上移动';
	}
}
(3)Abstrakter dekorativer Klassenwechsler

class Changer implements Transform
{
	private $transform;
	public function __construct($tansform='') {
		$this->transform = $tansform;
	}
	public function move() {
		$this->transform->move();
	}
}
(4) Spezifischer Dekorationstyp Wurzel, Flugzeug

class Root extends Changer
{
	public function __construct($tansform='') {
		parent::__construct($tansform);
		echo '变成机器人';
	}
	public function say() {
		echo '说话';
	}
}
class Airplane extends Changer
{
	public function __construct($tansform='') {
		parent::__construct($tansform);
		echo '变成机飞机';
	}
	public function fly() 
	{
		echo '在天空飞翔';
	}
}

(5) Testcode

$camaro = new Car();
echo '<br>';
$camaro->move();
echo '<br>';
echo '-----------';
echo '<br>';

$bumblebee = new Airplane($camaro);
echo '<br>';
$bumblebee->move();
echo '<br>';
$bumblebee->fly();

echo '<br>';
echo '-----------';
echo '<br>';

$bumblebee = new Root($camaro);
echo '<br>';
$bumblebee->move();
echo '<br>';
$bumblebee->say();


Transformers ist ein Auto
Bewegen Sie sich an Land
----------
Werden Sie zum Flugzeug
in Bewegen Sie sich an Land
Fliege in den Himmel
----------
Werde ein Roboter
An Land gehen
Sprechen

Das Obige stellt den PHP-Dekorationsmodus vor, einschließlich einiger Aspekte des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn