关于php单例模式

传统php一次请求结束后,进程就结束了,单例模式还有用嘛

阅读 2.5k
4 个回答

如果你确定对象只会被使用一次,可以不用单例模式。

就像上面的回答说的,一次请求可能会进行多次数据库和日志记录操作,线上项目每次请求都会有很多次日志记录,如果不是单例模式结果可能是:

  1. 记录请求的参数,实例化一次
  2. 记录数据库查询结果,实例化一次
  3. 记录返回结果,实例化一次

这明显会造成不合理的浪费。

什么情况下不需要单例,model 层就是典型的例子,通常在一次请求中,实例化一次 model 对象就会一直使用,这时可以不用单例。

有用啊,一次请求里包含很多东西啊,比如操作多次数据库啊。多次写日志等等

数据库需要做连接池

单例模式

所谓单例,就是整个程序有且仅有一个实例。该类负责创建自己的对象,同时确保只有一个对象被创建

每个设计模式有是有它存在的意义。上面是定义。再一个应用程序开发的过程中一定是避免不了有些对象被多次使用,比如:数据库,缓存,全局配置,ioc容器等等!为了避免类似被多次创建带来的额外开销,所以单例的模式是一个很好的解决方案。如果需要细致的了解,可以研究一下常用的MVC源码,里面少不了这些常用的设计模式。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题