请查看以下代码:
#include<string>
class abc
{
public:
static const abc PENDING;
private:
static const string PENDING_STATUS_CD;
abc ( const string& iStatus )
{
//...........
Logintodatabase();
//.............
logoutfromdatabase();
}
};
const string abc::PENDING_STATUS_CD = "P";
const abc abc::PENDING ( abc::PENDING_STATUS_CD );
一旦const abc abc :: PENDING(abc :: PENDING_STATUS_CD);被调用,它将调用构造函数abc ( const string& iStatus )
。
实际上,如果在类中定义了多个静态类变量,则每次初始化都会调用构造函数。
这个构造函数负责打开&amp;关闭数据库。
对于每个静态变量初始化,数据库将打开&amp;关闭。
假设这个类被多个进程使用,那么很多时候数据库将打开&amp;关闭。
你能建议如何克服这个问题吗?
谁能告诉我如何设计这个逻辑?
答案 0 :(得分:0)
数据库是依赖项。从外面传递,也许在构造函数中传递。假设它已经打开,让你班级的调用者担心打开,关闭或缓存连接。
在技术层面上,如果您不想进行依赖注入,请查找相应数据库的connection pooling
。