デコレータ パターンを使用すると、ラッパー クラスを作成することで、元のオブジェクトを変更せずに機能を動的に追加できます。既存のオブジェクトの周囲にデコレータをラップすることで、追加の機能を簡単に追加できます。デコレータパターンは組み合わせて使用することができ、デコレータを削除することで逆の動作を行うこともでき、柔軟なオブジェクトの機能拡張を実現します。
PHP のデコレーター パターン
PHP のデコレーター パターンは、元のオブジェクトを変更せずにオブジェクトに新しい機能を動的に追加できるデザイン パターンです。これは、元のオブジェクトに接続して追加の機能を提供するラッパー クラスを作成することによって実現されます。
実践的な例: ユーザー入力文字列へのタグの追加
次のシナリオを考えてみましょう: HTML タグを作成するクラスがありますが、ユーザー入力文字列の中間にタグを動的に追加する方法が必要です。デコレータ パターンを使用してこの機能を実現できます:
<?php // 创建标签包装器类 class TagDecorator { protected $tag; protected $object; public function __construct($tag, $object) { $this->tag = $tag; $this->object = $object; } public function __toString() { return "<{$this->tag}>{$this->object}</{$this->tag}>"; } } // 创建原始对象 $input = 'Hello, world!'; // 使用包装器类添加标签 $boldDecorator = new TagDecorator('b', $input); $italicDecorator = new TagDecorator('i', $boldDecorator); // 显示带标签的字符串 echo $italicDecorator; // 输出: // <b><i>Hello, world!</i></b> ?>
この例では、TagDecorator
クラスは元の入力文字列にラベルを追加するラッパーです。既存のオブジェクトの周囲にデコレーターをラップすることで、元のオブジェクトのコードに影響を与えることなく、追加の機能を簡単に追加できます。
注:
以上がPHPでデコレータパターンを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。