聲明:本系列部落格參考資料《大話設計模式》,作者程傑。
用原型實例指定創建物件的種類,並且透過拷貝Prototype模式允許一個物件再創建另一個可自訂的對象,根本無需知道任何如何創建的細節,透過將一個原型對象傳給那個要發動創建的對象,這個要發動創建的物件透過請求原型物件拷貝它們自己來實施創建。它主要面對的問題是:「某些結構複雜的物件」的創建工作;由於需求的變化,這些物件經常面臨著劇烈的變化,但是他們卻擁有比較穩定一致的介面。
在php中,而類別已實現了一個原型模式,且php有個魔術__clone(__clone(),類型複製出一個原型模式,php有個魔術__clone(__clone(__clone)的方法克隆出一個對象。
看看UML類圖:
複製的介面
2.特定的原型,實現複製的介面
特定的代碼:
[php]
[php]
plain copy
print
?
*
- class Prototype
- {
- abstract function cloned(
-
/**抽象原型類 * Class Prototype
*/- class Plane
extends- Prototype
-
{
- $color;
-
-
-
{ echo
- }
-
-
) {
- }
-
}
[php] view
plain- copy print?
- header("Content-Type:text/html;charset=utf-8");
- //------------ ---------原型模式測試程式碼------------------
- require_once "./Prototype/Prototype .php";
-
-
$plane1 $plane1->color="Blue"
; - $plane2
=-
- $plane1->Fly(); $plane2
->Fly();
- >color}
"
- ; echo
- "plane2的顏色為:{$plane2->color}
"
- ; 這裡只是介紹一下原型模式的核心思想,其實在實際開發中直接clone即可。 $plane2=clone $plane1;$plane2->Fly();
-
$plane2->color;$plane2->color;$plane2->color;
以上就介紹了php設計模式學習系列(七)--原型對象,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。