这篇文章主要介绍了工厂模式与内存分配之间关系,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
1,工厂模式就是负责生产其他对象的类或方法,常用的工厂模式的一个用法:
& lt; php ? 类ExportIndustryObj { 公共_obj美元; 公共函数getObj () { 如果(! $ this→_obj) { $ this→_obj=新的测试(); } 返回$ this→_obj; } } 类测试{ 公共函数__construct () { 回声121111; } } 美元行业=new ExportIndustryObj (); 其中obj1=行业→美元getObj (); methoda=行业→美元getObj (); var_dump(其中obj1, methoda美元);
2,上述代码执行后:
3代码分析:
(1)代码中输出了两个对象,分部是其中obj1美元和美元methoda,输出了一次构造中的数字,两个对象编号一样 (2)由此可见,工厂模式可以做到一点,就是只新一次对象以前>
1,内存从分配角度大体可以分为四种类型:栈空间段,堆空间段,代码段,初始化静态段。
2, <强>栈空间段强>是存储占用相同空间长度并且占用空间较小的数据类型的地方,比如说整型1,10100,1000,10000,100000等等,在内存里面占用空间是等长的,都是64位4个字节。
3 <强>堆空间段强>是存储数据长度不定且占用空间较大的数据类型,例如对象。
, <强>代码段强>是存储执行程序代码本身的地方。
, <强>数据段强>是存储初始化且不为0的全局变量,如静态变量和常量。
6,内存分配图示:
7,栈内存是可以直接存取的,而堆内存不可以直接存取。
8日对于我们的对象来说就是一种大的数据类型而且是占用空间不定长的类型,所以说<强> 对象本身是放在堆里面的,但对象名称是放在栈里面的 >强劲,这样通过对象名称就可以使用对象了
9日对象的图示:
10,上图可以看的到,对象名是存在栈中,新增了三个人对象,三个具体的对象信息存在堆中。
1,总结起来可以知道,工厂模式就是尽可能的只创建一次对象,从而在堆空间中不用创建重复的对象导致空间浪费,因为堆空间本身是不定长的且空间较大。
2,工厂模式,提取关键词,就是“只新一次对象”,“节省堆空间”。
感谢你能够认真阅读完这篇文章,希望小编分享工厂模式与内存分配之间关系内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!
工厂模式与内存分配之间关系