我正在Zend中构建一个模型来构建一个包含密钥数据的对象,该对象将根据需要进行延迟加载并存储在会话变量中。
我正在考虑单身模式,但发现一些不清楚的缺点。单身人士似乎坚持并像全球一样行事。但是在HTTP环境中(除非它存储在会话或数据库中)可能只会持续与请求一样长。
我想验证用户,将用户ID等存储在私有变量中,并且当前用户访问信息,即当前地址存储以及保存数据库调用。
我是否正确,单身人士只持续会议,并且每个后续用户可以为自己制作一个单身人士?
关于利弊的思考。
答案 0 :(得分:0)
你的问题并不是很清楚,但Singleton会在每个请求之间消失,它只是类的一种(模式),如果你在对服务器的调用之间没有做任何事情来保留它,它就会消失。
围绕单身人士的缺点往往反映了一个糟糕的设计:单身人士带来的东西是静态的。但是,一个好的OOP设计假设保持私有和模块化,因此它应该在类之间很少耦合。如果到处都使用了很多类,那么你可能会出错。
TMHO如果您的应用中有一个或两个单身人士来维护全局请求上下文和用户上下文,那很好。如果您有十个,则可能需要重新设计应用的某些部分。