//某软件需要把运行过程中的一些日志信息(发生时间,类型,内容)进行记录,
//采用面向对象思想,实现了一个日志类Log, Log类中有saveLog方法存储日志
//信息,现在假设该软件支持日志信息的多种存储方式,例如可以将日志信息
//存储进文本文件,也可以放入某数据库中,Log类的设计尽量满足面向对象的
//开-闭原则(支持对新的存储方式的扩展,但Log类的代码不修改),请设计并实现。
#include"iostream"
#include"string"
using namespace std;
class Log{
public:
virtual void saveLog() = 0;
};
class LogSaveToFile:public Log
{
private:
string content;
public:
LogSaveToFile(string logcontent)
{
content = logcontent;
}
void saveLog()
{
cout<<"这是日志内容:"<<content<<endl;
cout<<"已经把日志写到文本文件。"<<endl;
}
};
class LogSaveToSQLServer:public Log
{
private:
string content;
public:
LogSaveToSQLServer(string logcontent)
{
content = logcontent;
}
void saveLog()
{
cout<<"这是日志内容:"<<content<<endl;
cout<<"已经把日志写到SQL Server。"<<endl;
}
};
int main()
{
cout<<"1、把日志写到文本文件:"<<endl;
LogSaveToFile lstf("abc");
lstf.saveLog();
cout<<"2、把日志写到SQL Server:"<<endl;
LogSaveToSQLServer ltss("abc");
ltss.saveLog();
return 1;
}