什么是单例模式?
在整个应用中通过这个类只能实例化一个对象实例的设计模式
模式分类?
在所有模式设计中,有三种基础设计模式,单例模式,工厂模式,注册树模式,其他模式往往基于这几种模式,今天带来的是单例模式。
为什么要用单例模式?
1。php常常和数据库打交道,如果在应用中频繁建立连接对象,进行new操作的话,会消耗大量的系统内存资源。(节省资源开销)
2。在团队合作项目中,单例模式可以有效避免不同程序员new自己的对象时,造成人为的系统消耗。(节省资源开销)
------------------实现单例3部曲+1曲------------------
第一步:封装构造方法 private __construct( ) { }
原因: 构造函数在 new 出对象的时候第一个调用的方法 构造函数被申明为private或者protected这注定无法通过new的方法创建实例对象了。
1、对ASP内核代码进行DLL封装,从而大大提高了用户的访问速度和安全性;2、采用后台生成HTML网页的格式,使程序访问速度得到进一步的提升;3、用户可发展下级会员并在下级购买商品时获得差额利润;4、全新模板选择功能;5、后台增加磁盘绑定功能;6、后台增加库存查询功能;7、后台增加财务统计功能;8、后台面值类型批量设定;9、后台财务曲线报表显示;10、完善订单功能;11、对所有传输的字符串进行安全
第二步: 通过类内的方法来创建对象实例。 static Single(){ }
原因:我们往往往往是创建了对象后才调用对象的方法,而此时需要调用类里面的方法来创建对象。不受是否创建对象影响都能调用的方法的解决方案毋庸置疑那就是利用关键字--static
第三步:定义一个封装的静态变量 private static $instance
原因:把实例化的唯一对象放在这个变量里面存起来
第四步(加1曲):私有化克隆的魔术方法:__c l o n e ();
原因:对于一个类的对象,如果使用“clone运算符”,就会克隆出一个跟当前对象完全一样的新对象出来,并且:此时这个新对象还会自动调用该类中的魔术方法:_ _c l o n e ();只要其中有该方法;
代码演示









