Factory--------创建型设计模式之二
2004-07-08 11:26
495 查看
创建型模式由一个对象的接口和一个具体的类组成,该控制类决定在运行的时候该创建那个具体的对象,该模式在应用程序的日志处理中非常有用,比如在写日志的是采用写到文件中还是数据库中.
class Logger
{
virtual void LogError() = 0;
virtual void LogError(CString strErr) = 0;
};
class DBLogger:public Logger
{
public :
void LogError()
{
//do here log
}
void LogError(CString strErr)
{
//do here log
}
};
class FileLogger:public Logger
{
public:
void LogError()
{
//do log here
}
void LogError(CString strErr)
{
//do log here
}
};
class LogFactory
{
private:
LogFactory()
{}
public :
static Logger* GetLogger(int itype)
{
if(itype == 1)
return new DBLogger();
else
return new FileLogger();
}
};
class Log
{
public:
Log()
{
pLog = NULL;
iType = 1;
}
void SetType(int itype)
{
if(itype == iType)
return;
pLog = LogFactory::GetLogger (itype);
iType = itype;
}
void LogError()
{
pLog->LogError();
}
void LogError(CString strError)
{
pLog->LogError(strError);
}
private:
Logger* pLog;
int iType;
};
class Logger
{
virtual void LogError() = 0;
virtual void LogError(CString strErr) = 0;
};
class DBLogger:public Logger
{
public :
void LogError()
{
//do here log
}
void LogError(CString strErr)
{
//do here log
}
};
class FileLogger:public Logger
{
public:
void LogError()
{
//do log here
}
void LogError(CString strErr)
{
//do log here
}
};
class LogFactory
{
private:
LogFactory()
{}
public :
static Logger* GetLogger(int itype)
{
if(itype == 1)
return new DBLogger();
else
return new FileLogger();
}
};
class Log
{
public:
Log()
{
pLog = NULL;
iType = 1;
}
void SetType(int itype)
{
if(itype == iType)
return;
pLog = LogFactory::GetLogger (itype);
iType = itype;
}
void LogError()
{
pLog->LogError();
}
void LogError(CString strError)
{
pLog->LogError(strError);
}
private:
Logger* pLog;
int iType;
};
相关文章推荐
- JAVA设计模式(01):创建型-工厂模式【工厂方法模式】(Factory Method)
- 设计模式04: Factory Methord 工厂方法模式(创建型模式)
- 设计模式(一)工厂模式Factory(创建型)
- 设计模式(一)工厂模式Factory(创建型)
- 设计模式实战之——创建型模式(Builder、Factory method、Abstract factory)
- 设计模式(2)-创建型-简单工厂,工厂,抽象工厂模式(Factory)
- [导入]C#面向对象设计模式纵横谈(5):Factory Method 工厂方法模式(创建型模式).zip(10.09 MB)
- 设计模式-创建型-Factory Method(工厂方法)
- 【设计模式攻略】创建型模式之Factory模式
- 【设计模式攻略】创建型模式之Factory method模式
- Java经典设计模式-创建型模式-工厂方法模式(Factory Method)
- 【设计模式】创建型模式之工厂方法Factory Method
- 设计模式(一)工厂模式Factory(创建型)
- 设计模式-创建型模式#工厂方法FactoryMethod
- 设计模式(创建型)之工厂方法模式(Factory Method Pattern)
- 设计模式(2)-创建型-简单工厂,工厂,抽象工厂模式(Factory)
- Java设计模式之创建型模式-工厂模式(Factory)
- 设计模式(一)工厂模式Factory(创建型)
- Python 设计模式系列之二: 创建型 Simple Factory 模式
- 五.创建型设计模式——Abstract Factory Pattern(抽象工厂模式)