PHP - 使用和不使用内存方法的对象之间的区别?
我对MVC设计模型层感到困惑。 看完这篇文章后:Models in mvc (best practices, PHP)PHP - 使用和不使用内存方法的对象之间的区别?
正如你所看到的,在上面的文章中有两种设计模型图层的方法。
假设你有一个Book
模型:
第一种方式:Book
纯粹是与属性的对象像Book
有id
,title
...
第二种方式Book
甚至有id
和title
属性,它也有returnPage
,searchPage
,allBooks
方法。
如果我创建10.000书籍对象,内存使用情况有什么区别 - 所有书籍都有相同的方法,比较书籍只有属性?
我是否应该在其他类中分开逻辑方法returnPage
和searchPage
?
该类的每个实例都将存储函数的方法的指针和属性,该指针将存储该类的一次。当调用方法函数形成实例时,它将跳转到与方法指针一起存储的函数,然后执行该函数。当函数执行时,函数调用者将使用调用栈来存储临时值。每个调用者都有自己的调用堆栈,因此调用类功能时实例之间不会有冲突。
不要明白你的观点,请直接回答这个问题,它们有什么区别,是否影响到这两种设计模型的内存使用情况? – TomSawyer
好吧,让IT容易,本本必须存储属性和指针功能。所以他们会花费不同的内存 –
类方法一次存储在内存中;属性存储为每个实例 –
@MarkBaker所以这意味着这两种方式在内存使用方面没有任何区别? – TomSawyer