单例模式(饿汉式)弃

工作场景:第二个读取数据库的用户比第一个快的多

为什么会变慢

第一个用户访问的时候需要进行数据库配置文件的读取以及空指针的首次判断以及创建一个类对象指针,

饿汉式思路
//DBConfig
DBConfig* DBConfig::config = new DBconfig();
//C3_2
int main()
{
	DBConfig* config = DBConfig::getInstance();
    for (int i = 0; i < 100; i++) {

       

        SqlQuery query(config->getConn(), config->getUsername(), config->getPassword());

        // 查询操作
        query.query();

        printf("Query : %d\n", i);
    }

    std::cout << "C3_1\n";
}

//1.在main函数中第一行就调用getinstance就创建对象,在用户没有查询之前就调用
//2.在类指针创建的时候就进行初始化,下面的指针是否为空也就不必要判空

为什么叫饿汉式

无论程序是否调用执行查询操作都会先在配置文件中new一个对象,在main函数提前调用获取这个对象成员函数,就算用不着,像饿死鬼吃饱还吃一样

两种模式的区别

  • 相同在于都会在全局只产生一个变量
  • 如果用户肯定会用到这个配置文件就使用饿汉先加载,用不着就偷懒使用懒汉节省资源
posted @ 2023-09-22 21:21  游客0721  阅读(13)  评论(0)    收藏  举报