PHP設計模式之構造器(Builder)

<?php  /*至關於抽象的產品*/  abstract class Person{    public $head;    public $body;    public $foot;    public function __get($property_name){     if(isset($property_name)){      return $property_name;     }    }    public function __set($property_name,$value){     $this->$property_name = $value;    }   }   /*具體的產品*/   class Man extends Person{       }      /*抽象的工廠*/   interface PersonBuilder{    function BuildHead();    function BuildBody();    function BuildFoot();    function BuildPerson();   }   /*具體化了的生產用的工廠*/   class ManBuilder implements PersonBuilder{    public $man;        function __construct(){     $this->man = new Man();    }    function BuildHead(){     $this->man->head = "建造了男人的頭";    }    function BuildBody(){     $this->man->body = "建造了男人的身體";    }    function BuildFoot(){     $this->man->foot = "建造了男人的腳";    }    function BuildPerson(){     return $this->man;    }   }      function ConstractPerson($personbuilder){    $personbuilder->BuildHead();    $personbuilder->BuildBody();    $personbuilder->BuildFoot();    return $personbuilder->BuildPerson();   }      function Client(){    $manbuilder = new ManBuilder();    $man = ConstractPerson($manbuilder);    echo $man->head."<br/>";    echo $man->body."<br/>";    echo $man->foot."<br/>";   } ?> <?php  Client(); ?> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
相關文章
相關標籤/搜索