您的位置:首页 > 其它

设计模式Before-after之单例模式

2014-03-17 13:55 246 查看
before.cxx

#include <iostream>

class OS {
public:
const char *getName(void) {
return "Microsoft Windows";
}
const char *getVersion(void) {
return "6.1.7601";
}
};

OS os;

void displayCurrentOSName(void) {
std::cout << "current OS name: " << os.getName() << std::endl;
}

void displayCurrentOSVersion(void) {
std::cout << "current OS version: " << os.getVersion() << std::endl;
}

int main(void) {
displayCurrentOSName();
displayCurrentOSVersion();
return 0;
}


after.cxx
#include <iostream>

class OS {
public:
static OS &getInstance(void) {
if (!instance) {
instance = new OS();
}
return *instance;
}
const char *getName(void) {
return "Microsoft Windows";
}
const char *getVersion(void) {
return "6.1.7601";
}
private:
OS(void) {}
static OS *instance;
};

OS *OS::instance = 0;

void displayCurrentOSName(void) {
OS &os = OS::getInstance();
std::cout << "current OS name: " << os.getName() << std::endl;
}

void displayCurrentOSVersion(void) {
OS &os = OS::getInstance();
std::cout << "current OS version: " << os.getVersion() << std::endl;
}

int main(void) {
displayCurrentOSName();
displayCurrentOSVersion();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: