class Config{ 有我们单例模式所需要的一些信息,首先向外提供一个统一的访问接口,然后在类内实例化一个访问对象 //使用的是懒汉模式,涉及到线程安全问题,用的时候才去进行加载,所以要加锁 private: static std::mutex _mutex;//互斥锁,来保护对象实例化的一个过程 Config* _instance;//句柄,句柄通常命名都是_instance
private: int _hot_time;//热点判断时间 int _server_port;//服务器监听端口 std::string _download_prefix;//下载的url前缀路径 std::string _packfile_suffix;//压缩包后缀名称 std::string _back_dir;//文件下载的备份路径,备份文件的存放目录 std::string _pack_dir;//压缩包存放目录 std::string _server_ip;//服务器的ip地址 std::string _backup_file;//数据信息存放文件 //上面的成员变量都是私有成员变量,所以要提供公有接口来进行访问 public: static Config* GetInstance();//提供一个接口返回句柄 //提供获取数据的接口,都在单例类里面进行控制访问 当发生改变的时候只需要修改单例类里面的信息就可以了 int GetHotTime();//获取热点时间 int GetServerPort();//获取服务器端口 std::string GetDownloadPrefix();//获取url的前缀路径 std::string GetPackFileSuffix();//获取压缩包的后缀信息 std::string GetBackDir();//获取文件路径 std::string GetPackDir();//获取压缩包存放目录 std::string GetServerIp();//获取服务器的ip地址 std::string GetBackupFile();//存储文件信息的路径名
当我们有了上面的成员函数之后只需要使用单例类的对象来调用对应的接口就可以获取到其中的数据了
那所有的数据是从哪里来的呢?咱们是从配置文件里面去加载的,所以在构造函数里面还有一个非常关键的信息,即构造函数私有化
一个类只能实例化一个对象,并且在构造函数类加载配置文件读取配置文件当中的数据进行解析,将数据存放到私有成员里面
private: Config() { } }
标签:std,string,配置文件,获取,单例,Config,加载 From: https://blog.51cto.com/u_15562309/7417633