Oop 持久性如何改变对象体系结构?

Oop 持久性如何改变对象体系结构?,oop,object-persistence,Oop,Object Persistence,我正在用PHP处理类。当我编写一个类时,我总是想“这个对象基本上是一次性的;它不会持续超过页面负载。”因此,我的类中的所有逻辑基本上都会自行构造,进行一些状态更改,给出一些反馈,然后消亡。盐水虾 正因为如此,我开始使用异常抛出几乎所有的问题,因为在出现问题的情况下,我将无法让用户与对象交互。相反,用户会在页面上获得一些关于所发生事情的反馈,然后他们会重新提交表单或其他内容。无论如何,对象将在几毫秒后消亡,我将无法获得更多的输入来处理错误 在我看来,如果我在一个具有持久对象的环境中编程,我可能会在

我正在用PHP处理类。当我编写一个类时,我总是想“这个对象基本上是一次性的;它不会持续超过页面负载。”因此,我的类中的所有逻辑基本上都会自行构造,进行一些状态更改,给出一些反馈,然后消亡。盐水虾

正因为如此,我开始使用异常抛出几乎所有的问题,因为在出现问题的情况下,我将无法让用户与对象交互。相反,用户会在页面上获得一些关于所发生事情的反馈,然后他们会重新提交表单或其他内容。无论如何,对象将在几毫秒后消亡,我将无法获得更多的输入来处理错误

在我看来,如果我在一个具有持久对象的环境中编程,我可能会在对象中生成更健壮的警告和错误报告以及处理,然后让它们的方法以异常终止。如果一个对象仍然处于错误或警告状态,我可以从用户那里获得更多的输入并继续。因此,我的对象的外观和行为会有所不同


请注意,我要问的不是“PHP中的对象与其他语言的行为有何不同?”而是“在PHP(或其他非持久性环境)中编写对象时,这些对象与能够持久化的对象有何不同?”

我怀疑一个关键方面与资源管理有关,文件句柄和内存显然是可疑的。(就PHP而言,我想您应该取消设置范围内但不再需要的大型数组和对象。)


也就是说,我认为一个好的程序员无论如何都会以这种方式编码——让文件句柄保持打开状态等是相当拙劣的做法,即使你知道运行时会为你处理这些事情。

我怀疑一个关键方面与资源管理有关,文件句柄和内存显然是可疑的。(就PHP而言,我想您应该取消设置范围内但不再需要的大型数组和对象。)


也就是说,我认为一个好的程序员无论如何都会以这种方式编写代码——让文件句柄保持打开状态等等,这是相当拙劣的做法,即使您知道运行时会为您处理这些事情。

有趣的问题。(我想知道除了干净地处理资源以帮助垃圾收集等之外,还有什么后果)我很想使用社区wiki。你也可以在PHP中持久化对象,我只想删除对PHP的任何提及,这与当前的问题无关hand@Vinko我认为在PHP中使用非持久化对象是很常见的。。。还有哪些环境具有非持久化对象?@user151841所有环境都具有非持久化对象,通常由程序员选择是否持久化(以及以何种方式)对象。只是由于HTTP协议的性质,web应用程序(以任何语言编写)有可能拥有非持久性对象。您可以选择是否让它们持久化。这是一个有趣的问题。(我想知道除了干净地处理资源以帮助垃圾收集等之外,还有什么后果)我很想使用社区wiki。你也可以在PHP中持久化对象,我只想删除对PHP的任何提及,这与当前的问题无关hand@Vinko我认为在PHP中使用非持久化对象是很常见的。。。还有哪些环境具有非持久化对象?@user151841所有环境都具有非持久化对象,通常由程序员选择是否持久化(以及以何种方式)对象。只是由于HTTP协议的性质,web应用程序(以任何语言编写)有可能拥有非持久性对象。您可以选择是否让它们持久化。