Heim  >  Artikel  >  Backend-Entwicklung  >  Welcher Zusammenhang besteht zwischen Fabrikmuster und Speicherzuweisung?

Welcher Zusammenhang besteht zwischen Fabrikmuster und Speicherzuweisung?

青灯夜游
青灯夜游nach vorne
2019-03-28 12:00:502104Durchsuche

Der Inhalt dieses Artikels besteht darin, den Werksmodus und die Speicherzuweisung sowie den Zusammenhang zwischen dem Werksmodus und der Speicherzuweisung vorzustellen. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

1. Was ist das Fabrikmuster

1. Das Fabrikmuster ist eine Klasse oder Methode, die für die Produktion anderer Objekte verantwortlich ist. Häufig verwendete Fabriken Eine Verwendung des Musters:

<?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. Nachdem der obige Code ausgeführt wurde:

Welcher Zusammenhang besteht zwischen Fabrikmuster und Speicherzuweisung?

3. Code-Analyse:

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

2. Wie werden Objekte im Speicher zugeordnet?

1. Aus Sicht der Zuweisung kann Speicher grob in vier Typen unterteilt werden: Stapelspeichersegment, Heapspeichersegment, Codesegment und statisches Initialisierungssegment.

2. Stapelraumsegment ist ein Ort zum Speichern von Datentypen, die die gleiche Raumlänge und weniger Platz belegen, wie z. B. ganze Zahlen 1, 10, 100, 1000, 10000, 100000, usw. Warten Sie, der im Speicher belegte Speicherplatz ist gleich lang, beide sind 64 Bit und 4 Byte.

3. Heap-Space-Segment ist ein Datentyp, der Daten variabler Länge speichert und viel Platz einnimmt, z. B. Objekte.

4. Codesegment ist der Ort, an dem der Ausführungsprogrammcode selbst gespeichert ist.

5. Datensegment ist eine globale Variable, die die Initialisierung speichert und nicht 0 ist, wie z. B. statische Variablen und Konstanten.

6. Auf den Stapelspeicher kann direkt zugegriffen werden, auf den Heapspeicher kann jedoch nicht direkt zugegriffen werden.

8. Bei unserem Objekt handelt es sich um einen großen Datentyp, der eine variable Länge an Speicherplatz einnimmt, sodass das

Welcher Zusammenhang besteht zwischen Fabrikmuster und Speicherzuweisung?-Objekt selbst im Heap platziert wird, der Objektname jedoch im Stapel platziert

, so dass das Objekt über den Objektnamen verwendet werden kann

9. Abbildung des Objekts:

10. Wie Sie dem obigen Bild entnehmen können, wird der Objektname im Stapel gespeichert, drei Personenobjekte sind neu und drei spezifische Objektinformationen werden im Heap gespeichert.

Welcher Zusammenhang besteht zwischen Fabrikmuster und Speicherzuweisung?3. Der Zusammenhang zwischen Werksmodus und Speicherzuweisung

1. Zusammenfassend lässt sich sagen, dass der Werksmodus nur erstellt so viel wie möglich Sobald das Objekt erstellt wurde, müssen keine doppelten Objekte im Heap-Speicherplatz erstellt werden, was zu einer Platzverschwendung führt, da der Heap-Speicherplatz selbst eine variable Länge hat und viel Platz hat. 2. Factory-Modus, Schlüsselwörter extrahieren, die „nur einmal neue Objekte“ sind und „Heap-Speicherplatz sparen“. Empfohlene Video-Tutorials: „

PHP-Tutorial

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Lernen aller hilfreich sein wird. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !

Das obige ist der detaillierte Inhalt vonWelcher Zusammenhang besteht zwischen Fabrikmuster und Speicherzuweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen