>  기사  >  백엔드 개발  >  팩토리 패턴과 메모리 할당은 어떤 연관이 있나요?

팩토리 패턴과 메모리 할당은 어떤 연관이 있나요?

青灯夜游
青灯夜游앞으로
2019-03-28 12:00:502090검색

이 글에서는 팩토리 모드와 메모리 할당에 대해 소개하고, 팩토리 모드와 메모리 할당 간의 연결을 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

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. 할당의 관점에서 메모리는 크게 스택 공간 세그먼트, 힙 공간 세그먼트, 코드 세그먼트 및 초기화 정적 세그먼트의 네 가지 유형으로 나눌 수 있습니다.

2,

스택 공간 세그먼트 은 정수 1, 10, 100, 1000, 10000, 100000 등은 메모리에서 64비트와 4바이트의 동일한 공간을 차지합니다.

3,

Heap 공간 세그먼트 는 가변 길이의 데이터를 저장하고 객체와 같이 큰 공간을 차지하는 데이터 유형입니다.

4,

코드 세그먼트 는 실행 코드 자체가 저장되는 곳입니다.

5,

데이터 세그먼트 는 정적 변수, 상수 등 초기화를 저장하는 전역 변수로 0이 아닙니다.

6. 메모리 할당 아이콘:


팩토리 패턴과 메모리 할당은 어떤 연관이 있나요?

7. 스택 메모리에 직접 액세스할 수 있습니다. 직접 접근할 수 없습니다.

8. 객체의 경우 대용량 데이터 유형이고 가변 길이의 공간을 차지하므로

객체 자체는 힙에 배치되지만 개체 이름은 스택에 배치되므로 개체 이름

9을 통해 개체를 사용할 수 있습니다. 개체 아이콘:

#🎜🎜 #

팩토리 패턴과 메모리 할당은 어떤 연관이 있나요?10. 위 그림에서 볼 수 있듯이 스택에는 객체 이름이 저장되어 있고, 3인 객체는 새로운 객체이며, 3개의 특정 객체 정보가 스택에 저장되어 있습니다. 힙.

3. 공장 모드와 메모리 할당 간의 연결 1. 아시다시피, 팩토리 패턴은 가능한 한 한 번만 객체를 생성하는 것이므로 힙 공간 자체가 가변 길이이고 넓은 공간.

2. 공장 모드에서 "새 개체는 한 번만" 및 "힙 공간 절약"이라는 키워드를 추출합니다.

추천 비디오 튜토리얼: "

PHP 튜토리얼

" 위 내용은 이 글의 전체 내용입니다. 모든 사람에게 도움이 되기를 바랍니다. 학습 도움. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

위 내용은 팩토리 패턴과 메모리 할당은 어떤 연관이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제