原型模式(Prototype)
Prototype原型模式是一種建立型設計模式,Prototype模式允許一個物件再建立另一個可自訂的對象,根本無需知道任何如何創建的細節,工作原理是:通過將一個原型對象傳給那個要發動創建的對象,這個要發動創建的對象通過請求原型對象拷貝它們自己來實施創建。
解決什麼問題
它主要面對的問題是:「某些結構複雜的物件」的創建工作;由於需求的變化,這些物件經常面臨著劇烈的變化,但是他們卻擁有比較穩定一致的介面。
使用php提供的clone()方法來實作物件的克隆,所以Prototype模式實作一下子變得很簡單。並且可以使用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 'clone...'; } } $texter1 = new text('1.txt'); $texter1->write('test...'); //获得一个原型 $texter2 = $texter1->copy(); echo $texter2->read();
以上是原型模式有什麼用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!