ホームページ >バックエンド開発 >PHPチュートリアル >ファクトリ パターンとメモリ割り当ての間にはどのような関係がありますか?

ファクトリ パターンとメモリ割り当ての間にはどのような関係がありますか?

青灯夜游
青灯夜游転載
2019-03-28 12:00:502155ブラウズ

この記事では、ファクトリ モードとメモリ割り当ての概要、およびファクトリ モードとメモリ割り当ての関係について説明します。一定の参考値があるので、困っている友達は参考にしていただければ幸いです。

1. ファクトリ パターンとは

#1. ファクトリ パターンは、他のオブジェクトの生成を担当するクラスまたはメソッドです一般的に使用されるファクトリー パターンの使用法:

<?php    class ExportIndustryObj{
       public $_obj;

       public function getObj(){
           if(!$this->_obj){
               $this->_obj = new Test();
           }   

           return $this->_obj;
       }   
  }   

  class Test{
       public function __construct(){
           echo 121111;
       }   

  }   


  $industry = new ExportIndustryObj();
  $obj1 = $industry->getObj();
  $obj2 = $industry->getObj();
  var_dump($obj1,$obj2);

2. 上記のコードの実行後:

ファクトリ パターンとメモリ割り当ての間にはどのような関係がありますか?

#3. コード分析:

(1)代码中输出了两个对象,分部是$obj1和$obj2,输出了一次construct中的数字,两个对象编号一样
(2)由此可见,工厂模式可以做到一点,就是只new一次对象

2. オブジェクトはどのようにメモリに割り当てられるのでしょうか?

1. メモリは割り当ての観点から、スタック領域セグメント、ヒープ領域セグメント、コードセグメント、初期化静的セグメントの 4 つのタイプに大別できます。

2、スタック スペース セグメントは、整数 1、10、100、1000、10000、100000、など、同じスペース長を占有し、より少ないスペースを占有するデータ型を格納する場所です。など。待て、メモリ内に占有されるスペースは同じ長さで、両方とも 64 ビットと 4 バイトです。

3、ヒープ スペース セグメントは、可変長のデータを格納するデータ型であり、オブジェクトなどの大きなスペースを占有します。

4, コードセグメントは、実行可能なプログラムコード自体が格納される場所です。

5、データセグメントは、初期化を格納するグローバル変数であり、静的変数や定数などの0ではありません。

6. メモリ割り当て図:

ファクトリ パターンとメモリ割り当ての間にはどのような関係がありますか?

#7. スタック メモリには直接アクセスできますが、ヒープ メモリには直接アクセスできません。

8. 私たちのオブジェクトの場合、それは大きなデータ型であり、可変長の領域を占有するため、 オブジェクト自体はヒープに配置されますが、オブジェクト名はスタックに配置されるので、オブジェクト名 9 を通じてオブジェクトを使用できるようになります。オブジェクトの図:


ファクトリ パターンとメモリ割り当ての間にはどのような関係がありますか?10. 上の図からわかるように、オブジェクト名がスタックに格納され、3 つの人物オブジェクトが新規で、3 つの特定のオブジェクト情報がヒープに格納されています。

3. ファクトリ モードとメモリ割り当ての関係1. 要約すると、ファクトリ モードでは次のようにしか作成されないことがわかります。オブジェクトを一度作成してしまえば、ヒープ領域自体が可変長で大きな領域を持つため、ヒープ領域に重複したオブジェクトを作成する必要がなく、領域の無駄が生じます。

2. ファクトリ モードでは、「新しいオブジェクトは 1 回だけ」および「ヒープ領域を節約する」というキーワードを抽出します。

おすすめのビデオチュートリアル: 「

PHP チュートリアル

以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

以上がファクトリ パターンとメモリ割り当ての間にはどのような関係がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。