この記事では、ファクトリ モードとメモリ割り当ての概要、およびファクトリ モードとメモリ割り当ての関係について説明します。一定の参考値があるので、困っている友達は参考にしていただければ幸いです。
#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一次对象
1. メモリは割り当ての観点から、スタック領域セグメント、ヒープ領域セグメント、コードセグメント、初期化静的セグメントの 4 つのタイプに大別できます。
2、スタック スペース セグメントは、整数 1、10、100、1000、10000、100000、など、同じスペース長を占有し、より少ないスペースを占有するデータ型を格納する場所です。など。待て、メモリ内に占有されるスペースは同じ長さで、両方とも 64 ビットと 4 バイトです。
3、ヒープ スペース セグメントは、可変長のデータを格納するデータ型であり、オブジェクトなどの大きなスペースを占有します。
4, コードセグメントは、実行可能なプログラムコード自体が格納される場所です。
5、データセグメントは、初期化を格納するグローバル変数であり、静的変数や定数などの0ではありません。
6. メモリ割り当て図:
#7. スタック メモリには直接アクセスできますが、ヒープ メモリには直接アクセスできません。
8. 私たちのオブジェクトの場合、それは大きなデータ型であり、可変長の領域を占有するため、 オブジェクト自体はヒープに配置されますが、オブジェクト名はスタックに配置されるので、オブジェクト名 9 を通じてオブジェクトを使用できるようになります。オブジェクトの図:
10. 上の図からわかるように、オブジェクト名がスタックに格納され、3 つの人物オブジェクトが新規で、3 つの特定のオブジェクト情報がヒープに格納されています。
2. ファクトリ モードでは、「新しいオブジェクトは 1 回だけ」および「ヒープ領域を節約する」というキーワードを抽出します。
おすすめのビデオチュートリアル: 「
PHP チュートリアル」 以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !
以上がファクトリ パターンとメモリ割り当ての間にはどのような関係がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。