2

我一直打算在 PHP 中使用设计模式,例如观察者模式,但是每次加载页面时我都必须重新创建观察者的关系让我很痛苦。由于引用在会话中保存为新的具体对象,因此无法保留订阅者与其观察者之间的关系,除非您使用 GUID 或其他一些属性来形成查找并存储该属性。

与每次加载页面时重新创建关系的成本相比,与干净的设计相比,使用 PHP 中的观察者等设计模式是否值得?有什么真实的经验可以分享吗?

4

2 回答 2

3

这是一个有点奇怪的问题,要求一种编程语言——在设计上——不共享任何东西,并且无论如何都会在每个请求上重新创建整个环境。

在谈论成本时,您必须考虑到在每个请求上查找和重新创建会话数据也会占用资源。我不知道我们在您的应用程序中讨论了多少关系,但是在引导程序中将所有必需的主题与观察者联系起来听起来像是一种干净有效的方法。您可以将此责任推到管理器类中,以提高可维护性。

如果对性能有疑问,请进行基准测试。

于 2010-03-26T07:50:02.917 回答
0

关系本身的重新创建可能需要最少的时间,因为对象作为引用传递。

于 2010-03-26T08:17:13.533 回答