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

藏色散人
リリース: 2023-04-05 20:40:02
転載
3971 人が閲覧しました

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

プロトタイプ プロトタイプ パターンは創造的なデザイン パターンです。プロトタイプ パターンを使用すると、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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート