PHP設計モードの工場モードとプロトタイプモード


この2つのモードは、オブジェクトの作成と多重化に使用されます.ただし、オブジェクトの作成時に既存のコードをいつでも改善するデザインスタイルです.古いコードは変更しにくいことが多いので、この2つのモードは一般的に新しく追加するのに適しており、オブジェクトを作成したり、新しいオブジェクトを使用したりしやすいです.
あとは...もういい
私が言いたいのはJSで、原型を作ったストーブの火は真っ青で、私はずっと夢中になって、多くの原型はすべて言語の内核に深く埋め込まれています.
その本を推薦する
じょうふごう
_name = $name;
		}

		public function setName($name){
			$this->_name = $name;
		}

		public function shallowCopy(){
			// php   ,                  。              ,   clone()        ,        。
			//     __clone()  ,       (       )  __clone()      ,          
			//   new    clone,      ,     
			//            clone     。  clone                  ,                     ,                  
			return clone $this;
		}

		public function deepCopy(){
			//      :          ,                 ,      “  ” “   ”,           “  ” “  ”。         
			//          、          ,        ,       。        ,          base64_encode base64_decode。
			//  base64           。        ,   gzcompress    。 //base64_encode(gzcompress(serialize($obj)));   
			//unserialize(gzuncompress(base64_decode($txt)));    

			$serialize_obj = serialize($this);
			$clone_obj = unserialize($serialize_obj);
			return $clone_obj;
		}
		public function getName(){
			return $this->_name;
		}
	}


//            

	class Demo{
		public $string;
	}
	class UsePrototype{
		public function shallow(){
			$demo = new Demo();
			$demo->string = "susan";
			//  
			$object_shallow_first = new ConcretePrototype($demo);
			//   
			$object_shallow_second = $object_shallow_first->shallowCopy();
			//        
			echo '   :
'; var_dump($object_shallow_first->getName());          echo '
';          var_dump($object_shallow_second->getName());          echo '
';          $demo->string = "jack";                   echo ' :
';          var_dump($object_shallow_first->getName());          echo ' ,
';          var_dump($object_shallow_second->getName());          echo '
'; } public function deep(){ // , $demo = new Demo; $demo->string = "Siri"; // $object_shallow_first = new ConcretePrototype($demo); // $object_shallow_second = $object_shallow_first->deepCopy(); // echo ' :
'; var_dump($object_shallow_first->getName());          echo '
';          var_dump($object_shallow_second->getName());          echo '
';          $demo->string = "jack";                   echo ' :
';          var_dump($object_shallow_first->getName());          echo ' ,
';          var_dump($object_shallow_second->getName());          echo '
'; } } // $up = new UsePrototype; $up->shallow(); echo '
'; $up->deep(); // , , , , ,  new  , , , , 、 : // , , 。 // , , , , , , , 。 // , , , 。 ?>

法界の衆生が安楽であることを願う