PHP設計模式——原型模式_PHP教程

來源:互聯網
上載者:User

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即可。

http://www.bkjia.com/PHPjc/991918.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/991918.htmlTechArticlePHP設計模式——原型模式 用原型執行個體指定建立對象的種類,並且通過拷貝這些原型建立新的對象。Prototype模式允許一個對象再建立另外一個...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.