介绍一下单例的应用场景:最简单的场景就是数据库了, 还有框架中基础的应用配置加载了,使用单例模式有如下好处,避免过多的new对象造成大量资源廊坊和超出最大连接数而产生应用down机问题,可以全局设立一个单访问点避免多出访问点造成难以维护的现象,便于调试直接可以设立日志记录全局设立统一节点,避免导出var_dump,print_r的现象
一、类图
单例相对结构上比较简单,总体实现想法就是全局设立一个访问点,全局共同使用一个对象,不会创建多余的对象。
二、实现思路
完成单例需要满足以下需求:
1、全局隐藏私有构造方法,预防通过new来创建对象。
2、隐藏私有克隆方法,预防通过克隆创建对象
3、对外暴露一个静态的Instance方法提供统一对外的获取对象的方式
三、实现单例模式
1 | class Singleton |
通过Singleon::getInstance();来使用单例
2、使用trait方式实现
1 | //PHP trait 使用 |
好了今天的单例就到这里,以后会陆续上其它的设计模式,并且会通过PHP和JAVA两种语言或者多种来去实现来加深印象,好的设计模式能让系统更加的简介代码复用更高,大家努力学习吧