Php 重置对象与构建新对象

Php 重置对象与构建新对象,php,mysql,oop,Php,Mysql,Oop,为特定对象创建一个“重置”函数,清除/默认所有必要的成员变量以允许进一步操作,或者只是从外部构造一个新对象,这被认为是更好的做法和/或更有效的方法吗 这两种方法我都见过很多,但我不能决定哪一种更好。当然,对于表示数据库连接的类,您必须使用重置方法,而不是构造一个新的方法,这会导致不必要的连接/断开连接,但我更多地从抽象类的角度来讨论 有人能给我一些实际的例子,说明什么时候使用每种方法吗?在我的特殊情况下,我主要考虑ORM或MVC中的模型。例如,如果我想检索一组数据库对象以供显示,并在一次操作中修

为特定对象创建一个“重置”函数,清除/默认所有必要的成员变量以允许进一步操作,或者只是从外部构造一个新对象,这被认为是更好的做法和/或更有效的方法吗

这两种方法我都见过很多,但我不能决定哪一种更好。当然,对于表示数据库连接的类,您必须使用重置方法,而不是构造一个新的方法,这会导致不必要的连接/断开连接,但我更多地从抽象类的角度来讨论


有人能给我一些实际的例子,说明什么时候使用每种方法吗?在我的特殊情况下,我主要考虑ORM或MVC中的模型。例如,如果我想检索一组数据库对象以供显示,并在一次操作中修改它们。

重置是出于性能原因。默认方法是在需要时创建新对象,而不是回收现有对象。如果你不担心你的php速度太慢,那就不要只是创建。如果您担心php的速度太慢,那么应该停下来,担心您依赖的其他事情会慢得多。

当您重新使用对象时,您正在使用该模式

需要考虑的主要问题之一是这些对象的状态有多大,以及对于下一个用户需要重置多少状态。使用数据库连接时,您不需要再次进行连接,否则您也可以创建一个新的连接。这样做的目的是让对象保持连接,但要清除任何结果

不使用对象池的原因:

  • 池的复杂性
  • 在不需要时实例化这些对象的内存成本。这甚至可能会减慢垃圾收集的速度
  • 确定需要重置的确切状态
使用对象池的原因:

  • 创建或销毁对象的时间太长
更多详情请参阅作者的论文