首頁  >  文章  >  後端開發  >  工廠模式與記憶體分配之間有什麼關聯?

工廠模式與記憶體分配之間有什麼關聯?

青灯夜游
青灯夜游轉載
2019-03-28 12:00:502102瀏覽

本篇文章帶給大家的內容是介紹工廠模式與記憶體分配,以及工廠模式與記憶體分配之間的連結。有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

一、什麼是工廠模式

#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、記憶體從分配角度大體可以分為四種類型:堆疊空間段、堆疊空間段、程式碼段、初始化靜態段。

2、

堆疊空間段
是儲存佔用相同空間長度並且佔用空間較小的資料類型的地方,比如說整數1,10,100,1000,10000,100000 等等,在記憶體裡面佔用空間是等長的,都是64 位元4 個位元組。

3、工廠模式與記憶體分配之間有什麼關聯?堆空間段

是儲存資料長度不定且佔用空間較大的資料類型,例如物件。

4、

程式碼段是儲存執行程式程式碼本身的地方。 5、資料段

是儲存初始化且不為0的全域變量,如靜態變數和常數。


6、記憶體分配圖示:

工廠模式與記憶體分配之間有什麼關聯?

#7、堆疊記憶體是可以直接存取的,而堆疊記憶體不可以直接存取。

8、對我們的物件來說就是一種大的資料型別而且是佔用空間不定長的型,所以說物件本身是放在堆裡面的,但物件名稱是放在堆疊裡面的

,這樣透過物件名稱就可以使用物件了

9、物件的圖示:

10、上圖可以看到,物件名稱是存在堆疊中,new了三個person對象,三個具體的物件資訊存在著堆中。

######三、工廠模式與記憶體分配之間的聯繫############1、總結起來可以知道,工廠模式就是盡可能的只創建一次對象,從而在堆空間中不用創建重複的對象導致空間浪費,因為堆空間本身是不定長的且空間較大。 ######2、工廠模式,提取關鍵字,就是「只new一次物件」、「節省堆空間」。 ######相關影片教學推薦:《###PHP教學###》######以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! ! ###

以上是工廠模式與記憶體分配之間有什麼關聯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除

相關文章

看更多