ホームページ > バックエンド開発 > PHPチュートリアル > PHPデザインパターン Decorator(デコレーションモード)_PHPチュートリアル

PHPデザインパターン Decorator(デコレーションモード)_PHPチュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-21 15:27:23
オリジナル
801 人が閲覧しました

コードをコピーします コードは次のとおりです:

/**
* デコレーション モード
*
* オブジェクトにいくつかの追加の責任を動的に追加します。これは、拡張機能の点でサブクラスを生成するよりも柔軟です
*/
header("Content-type:text/html;charset=utf-8"); abstract class MessageBoardHandler
{
public function __construct(){}
abstract public function filter($msg);
}

class MessageBoard extends MessageBoardHandler
{
public function filter($msg)
{
return "メッセージボード | ".$msg;
}
}

$obj = new MessageBoard();
echo $obj->filter("必ずデコレーションモードを学習してください
");

// --- 以下はデコレーション モードの使用方法です ----
class MessageBoardDecorator extends MessageBoardHandler
{
private $_handler = null;

public function __construct($handler)
{
parent::__construct();
$this->handler = $handler;
}

public function filter($msg)
{
return $this->handler->filter($msg);
}
}

// html
class HtmlFilter extends MessageBoardDecorator
{
public function __construct($handler)
{
parent::__construct($handler)
}

public function filter($msg)
{
return "HTML タグをフィルタリングする|" .parent::filter($msg );; // HTML タグの処理を除外します
}
}

// デリケートな単語をフィルタリングします
class SensitiveFilter extends MessageBoardDecorator
{
public function __construct($handler)
{
parent ::__construct($handler);
}

public function filter($msg)
{
return "センシティブな単語を除外する|".parent::filter($msg); // 現時点ではセンシティブな単語を除外します 加工せずにテキストを追加するだけです
}
}

$obj = new HtmlFilter(new SensitiveFilter(new MessageBoard()))
echo $obj->filter("必ず学習してください)デコレーションモード!

http://www.bkjia.com/PHPjc/323785.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/323785.html技術記事次のようにコードをコピーします: ?php /*** デコレーション モード * * オブジェクトに追加の役割を動的に追加します。これは、拡張機能の点でサブクラスを生成するよりも柔軟です。*/ header("Content...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート