PHP設計モード(未完待機)

13175 ワード

PHP設計モード
一、OOP紹介
  • 真理が形成した二大要素--事実と抽象
  • 私たちの貴重な遺産を芝居と見なさないでください.この秩序と自由の偉大な国を大切にしてください.もし私たちがよろよろと転んだら、今の自由と文明は破壊に向かいますから.
  • は誰もが彼に遺伝したすべてを得て、彼は豊富な遺産を受け継いだ.

  • 二、1抽象類
    	
    		class OneTrick
    		{
    			private $storeHere;
    			public function trick($input)
    			{
    				$this->storeHere = $input;
    				return $this->storeHere;
    			}
    		{
    
    		$doIt = new OneTrick();
    		$dataRow = $doIt ->trick("test");
    		echo $dataRow;
    	?>
    

    工場モード
    ファクトリ・モードは、ファクトリ・モードが作成するものに対して製品です.この製品とそのクラスの間にはバインドはありません.
    工場モードの使用方法
           ,                  ,            ,          
    
  • 
    
    //createor.php
    abstract class Creator{
    	protected function factoryMethod();
    	public function startFactory(){
    		$mfg = $this->factoryMethod();
    		return $mfg;
    	}
    }
    
    //Product
    interface Product
    {
    	public function getProperties();
    }
    TextProduct implements Product{
    	private $mfgProduct;
    	public function getProperties(){
    		$this->mfgProduct = "    ";
    		return $this->mfgProduct;
    	}
    }
    TextFactory extends Creator {
    	protected function factoryMethod()
    	{
    		$product = new TextProduct();
    		return $product->getPorperties();
    	}
    
    }
    
    //Client.php
    
    class Client{
    	private $someTextObject;
    	public function __construct()
    	{
    		$this->someTextObject = new TextFactory();
    		echo $this->someTextObject->startFactory();
    	}
    }
    
    

    単一モード
    インスタンスを外部から作成できないクラス
    	/**
    	 *     
    	 */
    	
    	class PerModel
    	{
    		static private $instance;
    		private $porps;
    		
    		private function __construct()
    		{
    		
    		}
    		
    		static public function get_instance()
    		{
    			if(!self::$instance){              //         
    				self::$instance = new self();
    			}
    			
    			return self::$instance;
    		}
    		
    		
    		public function setPorps($data)
    		{
    			echo $data;
    		}
    		private function __clone()         //  clone
    		{
    			// TODO: Implement __clone() method.
    		}
    	}
    	
    	$item = PerModel::get_instance();
    	
    	//$item->setPorps(1);
    	
    	$items = PerModel::get_instance();
    	
    	if($item ===$items)
    	{
    		echo 1;
    		echo  "
    "
    ; }

    プロトタイプ設計モード
    クローン・テクノロジーを使用してインスタンス化されたオブジェクトをコピー
    プロトタイプ設計モードを使用する場合
    プロジェクトでプロトタイプオブジェクトの複数のインスタンスを作成する必要がある場合.例えば、進化の発展に関する研究では、科学者は通常ハエを研究対象とし、オスとメスのプロトタイプを基礎とすることができ、変異はオスまたはメスのインスタンスのクローンであるため、2つのインスタンス化を完了するだけで、必要に応じてcloneの複数の変異を必要とし、特定のクラスからインスタンスを別途作成する必要はありません.
  •