您好,登錄后才能下訂單哦!
這篇文章主要介紹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è)資訊頻道!
免責(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)容。