ホームページ  >  記事  >  バックエンド開発  >  プロトタイプモードの用途は何ですか?

プロトタイプモードの用途は何ですか?

藏色散人
藏色散人転載
2019-04-15 16:21:293922ブラウズ

プロトタイプ パターン (プロトタイプ)

プロトタイプ プロトタイプ パターンは創造的なデザイン パターンです。プロトタイプ パターンを使用すると、1 つのオブジェクトが別のカスタマイズ可能なオブジェクトを作成できます。作成方法の詳細については、次のように動作します。作成されるオブジェクトにプロトタイプ オブジェクトを渡すことにより、作成されるオブジェクトは、プロトタイプ オブジェクトに自身のコピーを要求することによって作成されます。

解決される問題

直面する主な問題は、「複雑な構造を持ついくつかのオブジェクト」の作成です。要件の変更により、これらのオブジェクトはしばしば直面する問題に直面します。は急激な変化を遂げていますが、比較的安定した一貫したインターフェイスを持っています。

PHP が提供する clone() メソッドを使用してオブジェクトのクローンを作成すると、プロトタイプ モードの実装が突然非常に簡単になります。また、PHP の __clone() 関数を使用してディープ クローン作成を完了できます。

コード例

<?php
//定义原型类接口
interface prototype{
public function copy();
}
//一个具体的业务类并实现了prototype 接口
//以一个文本的读写操作类为例
class text implements prototype{
private $_fileUrl;
public function __construct($fileUrl){
$this->_fileUrl = $fileUrl;
}
public function write($content){
file_put_contents($this->_fileUrl, $content);
}
public function read(){
return file_get_contents($this->_fileUrl);
}
public function copy(){
return clone $this;
}
/* 可以使用php的__clone() 函数完成深度克隆 */
public function __clone(){
echo &#39;clone...&#39;;
}
}
$texter1 = new text(&#39;1.txt&#39;);
$texter1->write(&#39;test...&#39;);
//获得一个原型
$texter2 = $texter1->copy();
echo $texter2->read();

以上がプロトタイプモードの用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はhcoder.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。