PHPのデコレーションモード

WBOY
リリース: 2016-08-08 09:23:57
オリジナル
1122 人が閲覧しました

トランスフォーマーの装飾モード

(1) 抽象構築クラス Tansform

interface Transform
{
	public function move();
}
ログイン後にコピー

(2) コンクリート構築クラス Car

final class Car implements Transform
{
	public function __construct() {
		echo '变形金刚是一辆汽车';
	}
	public function move() {
		echo '在陆地上移动';
	}
}
ログイン後にコピー
(3) 抽象装飾クラス Changer

class Changer implements Transform
{
	private $transform;
	public function __construct($tansform='') {
		$this->transform = $tansform;
	}
	public function move() {
		$this->transform->move();
	}
}
ログイン後にコピー
(4) 特定の装飾タイプ ルート、飛行機

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) テストコード

$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();
ログイン後にコピー


トランスフォーマーは、陸を移動する車
です
----------
が飛行機になります
陸で移動
空を飛ぶ
----------
ロボットになる
陸で移動
話す

以上、内容の側面も含めて PHP デコレーションモードを紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート