// 某软件需要把运行过程中的一些日志信息(发生时间,类型,内容)进行记录,采用面向对象的思想
// 实现一个日志类Log,log类中有savelog方法存储日志信息,现在假设该软件支持日志信息的多种
// 存储方式。例如可以将日志信息存储进文本文件,也可以存放如某数据库中,log类的设计尽量满足
// 面向对象的开 闭原则。(支持对新的存储方式的扩展,但是log代码不修改),请设计实现。
// 要 求:1,可以写一个小的设计文档,利用uml图等方式阐述你的设计思想。
// 2,面向变成语言不限。
//因为要支持存储方式的扩展,故想到虚函数和抽象类。只在基类中声明,不进行定义。
#include<iostream>
using namespace std;
class log
{
protected:
int data;
public:
log(int x=0) {data=x;}
virtual void logsave()=0;//纯虚函数的声明。
};
class logfile:public log
{
public:
logfile(int x=0) {};
void logsave(){cout<<"logsavetofile!!!";}
};
class logdb:public log
{
public:
logdb(int x=0) {};
void logsave() {cout<<"logsavetosqlsever!!";}
};
int main()
{
logfile a;
logdb b;
//对两种不通类型的对象进行同种函数的调用,但处理过程不同,显示了多态性。
a.logsave();
cout<<endl;
b.logsave();
}