推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

设计模式 - 单例模式(二)

   2023-06-30 网络整理佚名1180
核心提示:一、单例模式是什么?二、实现单例模式①、私有静态属性,又来储存生成的唯一对象②、私有构造函数③、私有克隆函数,防止克隆——clone④、公共静态方法,用来访问静态属性储存的对象,如果没有对象,则生成此单例2)关键词,检查此变量是否为该类的对象、子类、或是实现接口。三、应用场景(请求次数较多的类)1、数据库类2、网站计数器3、应用程序的日志应用4、Web应用的配置对象的读取

1.什么是单例模式? 效果如何?

单例模式是允许类仅被实例化(新)一次。 使用单例模式可以避免新建操作消耗大量资源。

二、实现单例模式

1)三私一公(原则)

①、私有静态属性,并存放生成的唯一对象

②、私有构造函数

③. 防止克隆的私有克隆功能——clone

④、 方法,用于访问静态属性中存储的对象,如果没有对象,则生成这个单例

2)关键字,检查这个变量是否是本类的对象、子类、或者实现了接口。

class SingleInstance{
            
   private function _construct(){
       // 私有构造函数
   }
        
   private static $instance;  // 私有属性,存储类对象
       
   private function _clone(){ // 私有克隆函数,防止clone
           
   }
   public static function getInstance(){  // 公有获取 实例化对象方法
       if(!self::$instance instanceof SingleInstance){
           self::$instance=new SingleInstance();
       }
       return self ::$instance;
   }
}

3.应用场景(请求较多的类)

1.数据库类

2. 网站柜台

3.应用日志应用

4.读取Web应用的配置对象

如果你有什么想法,可以在下方留言,一起讨论。 如果您觉得这篇文章对您有用,请帮忙点赞,谢谢! ^_^

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON