91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

工廠模式與內存分配之間關系

發布時間:2020-10-29 11:26:14 來源:億速云 閱讀:284 作者:小新 欄目:編程語言

這篇文章主要介紹了工廠模式與內存分配之間關系,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

一、什么是工廠模式

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一次對象”、“節省堆空間”。

感謝你能夠認真閱讀完這篇文章,希望小編分享工廠模式與內存分配之間關系內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

佛坪县| 云南省| 龙口市| 奎屯市| 罗城| 奉贤区| 南岸区| 红安县| 年辖:市辖区| 花垣县| 丰都县| 南昌市| 塘沽区| 嵩明县| 呼玛县| 修文县| 永新县| 达孜县| 奇台县| 宜城市| 淳化县| 门源| 张家界市| 潞城市| 武强县| 镇宁| 桐梓县| 瑞丽市| 重庆市| 宜宾市| 察雅县| 义马市| 寿光市| 尤溪县| 慈溪市| 文水县| 乃东县| 京山县| 明星| 鄄城县| 抚宁县|