ホームページ  >  記事  >  バックエンド開発  >  PHP デザイン パターン シリーズ - Decorator_PHP チュートリアル

PHP デザイン パターン シリーズ - Decorator_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:52:13955ブラウズ

デコレーターとは
デコレータモードは、元のオブジェクトの構造を変更せずに、既存のオブジェクトの内容や機能の一部を調整するために使用されます
。 応用シナリオ
ユーザー名情報を保存するために内部に UserInfo 配列を含む UserInfo クラスを設計します
addUser でユーザー名を追加
getUserList メソッドはユーザー名情報を出力します
ここで、追加したユーザー情報を大文字に変更する必要があります。元のクラスと元のデータ構造を変更する必要はありません。 私たちは、装飾と同じように、元のデータを装飾するこの必要な操作を完了する UserInfoDecorate クラスを設計しました
デコレーター パターンはアダプター パターンに似ていますが、デコレーターは主に既存のオブジェクト データ構造を変更しないための前提条件であることに注意する必要があります
コード: ユーザー情報
[php]
//デコレータ モードは、元のオブジェクトの構造を変更せずに、既存のオブジェクトのコンテンツや機能の一部を調整するために使用されます
クラス UserInfo {

パブリック $userInfo = array();
パブリック関数 addUser($userInfo) {
$this->userInfo[] = $userInfo; }

パブリック関数 getUserList() {
print_r($this->userInfo); }
}

コード: UserInfoDecorate には同じ装飾があり、元の UserInfo クラスを変更せずに、ユーザー情報の出力を大文字形式に変更します
[php]
include("UserInfo.php"); クラス UserInfoDecorate {


パブリック関数 makeCaps($UserInfo) {
foreach ($UserInfo->userInfo as &$val) {
$val = strtoupper($val); }
}

}

$UserInfo = 新しいユーザー情報
$UserInfo->addUser('zhu'); $UserInfo->addUser('initphp'); $UserInfoDecorate = 新しい UserInfoDecorate
; $UserInfoDecorate->makeCaps($UserInfo); $UserInfo->getUserList();

作者: initphp



http://www.bkjia.com/PHPjc/478144.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/478144.html

技術記事

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。