プロトタイプ パターン (プロトタイプ パターン): ファクトリー パターンと同様に、両方とも オブジェクトの作成に使用されます。クローン作成を使用して大きなオブジェクトを生成し、作成時の初期化やその他の操作のオーバーヘッドを削減します
1. 場合によっては、複数の同様の大きなオブジェクトを作成する必要があります。 new オブジェクトを直接渡すとオーバーヘッドが非常に高く、new 後に初期化作業を繰り返し実行する必要があります。初期化作業をカプセル化することは可能ですが、システムでは、カプセル化するかどうかに関係なく、初期化作業を実行する必要があります。
2. プロトタイプ モードは異なります。プロトタイプ モードでは、最初にプロトタイプ オブジェクトを作成し、次にそのプロトタイプ オブジェクトを複製することで新しいオブジェクトを作成します。これにより、繰り返しの初期化作業が回避され、システムはメモリ コピーのみを必要とします。
<?php /** * 原型模式 * * @author webff */ /** //声明一个克隆自身的接口 interface Prototype { function copy(); } //产品要实现克隆自身的操作 class Student implements Prototype { //简单起见,这里没有使用get set public $school; public $major; public $name; public function construct($school, $major, $name) { $this->school = $school; $this->major = $major; $this->name = $name; } public function printInfo() { printf("%s,%s,%sn", $this->school, $this->major, $this->name); } public function copy() { return clone $this; } } $stu1 = new Student('清华大学', '计算机', '张三'); $stu1->printInfo(); $stu2 = $stu1->copy(); $stu2->name = '李四'; $stu2->printInfo(); ?>
ここで、クラスのメンバー 変数 が多すぎる場合、複数の新しいオブジェクトを外部で作成して 1 つずつ割り当てると、効率が悪く、コードが冗長でエラーが発生しやすくなることがわかります。プロトタイプのコピーを通じて自分自身をコピーしてから、小さな変更を実行する必要があります。これは、別の新しいオブジェクトです。
以上がPHPデザインパターン~プロトタイプパターンの使い方と機能を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。