程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP設計模式——原型模式

PHP設計模式——原型模式

編輯:關於PHP編程

PHP設計模式——原型模式


 

用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。Prototype模式允許一個對象再創建另外一個可定制的對象,根本無需知道任何如何創建的細節,通過將一個原型對象傳給那個要發動創建的對象,這個要發動創建的對象通過請求原型對象拷貝它們自己來實施創建。它主要面對的問題是:“某些結構復雜的對象”的創建工作;由於需求的變化,這些對象經常面臨著劇烈的變化,但是他們卻擁有比較穩定一致的接口。

 

在php中,類已經實現了原型模式,php有個魔術方法__clone()方法,會克隆出一個這樣的對象。

看一下UML類圖:

\

 

角色分析:

1.抽象原型,提供了一個克隆的接口

2.具體的原型,實現克隆的接口

 

具體的代碼:

 

/**抽象原型類
 * Class Prototype
 */
abstract class Prototype
{
   abstract function cloned();
}

/**具體原型類
 * Class Plane
 */
class Plane extends Prototype
{

    public $color;

    function Fly()
    {
        echo 飛機飛啊飛!
;
    }

    function cloned()
    {
        return clone $this;
    }
}

 

客戶端測試代碼:

 

header(Content-Type:text/html;charset=utf-8);
//------------------------原型模式測試代碼------------------
require_once ./Prototype/Prototype.php;

$plane1=new Plane();
$plane1->color=Blue;

$plane2=$plane1->cloned();

$plane1->Fly();
$plane2->Fly();

echo plane1的顏色為:{$plane1->color}
;
echo plane2的顏色為:{$plane2->color}
;

這裡只是介紹一下原型模式的核心思想,其實在實際開發中直接clone即可。

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved