溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Prototype原型模式的作用是什么

發(fā)布時(shí)間:2020-10-23 18:23:30 來源:億速云 閱讀:134 作者:小新 欄目:編程語言

這篇文章主要介紹Prototype原型模式的作用是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

原型模式(Prototype)

Prototype原型模式是一種創(chuàng)建型設(shè)計(jì)模式,Prototype模式允許一個(gè)對(duì)象再創(chuàng)建另外一個(gè)可定制的對(duì)象,根本無需知道任何如何創(chuàng)建的細(xì)節(jié),工作原理是:通過將一個(gè)原型對(duì)象傳給那個(gè)要發(fā)動(dòng)創(chuàng)建的對(duì)象,這個(gè)要發(fā)動(dòng)創(chuàng)建的對(duì)象通過請(qǐng)求原型對(duì)象拷貝它們自己來實(shí)施創(chuàng)建。

解決什么問題

它主要面對(duì)的問題是:“某些結(jié)構(gòu)復(fù)雜的對(duì)象”的創(chuàng)建工作;由于需求的變化,這些對(duì)象經(jīng)常面臨著劇烈的變化,但是他們卻擁有比較穩(wěn)定一致的接口。

使用php提供的clone()方法來實(shí)現(xiàn)對(duì)象的克隆,所以Prototype模式實(shí)現(xiàn)一下子變得很簡(jiǎn)單。并可以使用php的__clone() 函數(shù)完成深度克隆。

代碼實(shí)例

<?php
//定義原型類接口
interface prototype{
public function copy();
}
//一個(gè)具體的業(yè)務(wù)類并實(shí)現(xiàn)了prototype 接口
//以一個(gè)文本的讀寫操作類為例
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() 函數(shù)完成深度克隆 */
public function __clone(){
echo 'clone...';
}
}
$texter1 = new text('1.txt');
$texter1->write('test...');
//獲得一個(gè)原型
$texter2 = $texter1->copy();
echo $texter2->read();

以上是Prototype原型模式的作用是什么的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI