原型模式
操作: 先建立好乙個原型物件,然後通過clone 原型物件來建立新的物件。這就免去了類建立時重複的初始化操作。
原型模式適用於大物件的建立。如果每次new 就會消耗很大,原型模式僅需要記憶體拷貝即可。
index.php 中
$prototype = new imooc\canvas();
$prototype->init(); //需要做很多很複雜的,耗時的處理
$prototype->rect(3, 6, 4, 12);
$prototype->draw();
echo "***************===
\n";
$canvas2 = clone $prototype;
$canvas2->rect(1,3, 2, 6); //和直接new 相比省掉 了init
$canvas2->draw();
canvas.php 中
<?php
/** * created by phpstorm.
*/namespace imooc;
class canvas
}$this->data = $data;
}public function rect($a1, $a2, $b1, $b2)}}
/* function adddecorator(drawdecorator $decorator)
function beforedraw()
}function afterdraw()
}*/ public function draw()
echo "
\n";
}//$this->afterdraw();
}}
建立物件及原型模式
工廠模式 function createperson name,age return o createperson 小明 18 建構函式模式 funciton person name age function say var person1 person 小明 18 建構函式的呼叫方式,需要建立 p...
建立物件之原型模式
1,原型模式建立物件 原型也是乙個物件。我們建立的函式都有乙個prototype屬性,這個屬性指向乙個物件,這個物件包含有特定函式建立的例項共享的屬性和方法。使用原型物件可以使所有的例項共享屬性和方法,而不必再建構函式中初始化屬性和方法。function person person.prototyp...
js建立物件 原型模式
原型模式是用來建立物件的,它是在建構函式建立物件基礎上,為了實現資料的共享,這種共享包括屬性的共享,也包括方法的共享。既然原型模式是在建構函式模式的基礎上改進的,那麼這種模式會既有建構函式的特點又有原型模式的特點。關於原型模式的使用方法用一句話總結 不需要共享的資料寫在建構函式中,需要共享的資料寫在...