我计划通过使用抽象工厂模式来解决特定问题。我成功实现了工厂模式,但无法将工厂模式扩展到抽象工厂
我有两个不同的地方可以存储异常详细信息
- 文件系统
- 数据库
我已经使用工厂模式从客户端抽象出对象创建细节
界面
public interface ILogException
{
void LogException();
}
文件系统记录器
public class FileExceptionLogger : ILogException
{
public void LogException()
{
Console.WriteLine("File Exception Logger");
}
}
数据库系统记录器
public class DBExceptionLogger : ILogException
{
public void LogException()
{
Console.WriteLine("DB Exception Logger");
}
}
工厂实施
public class ExceptionFactory
{
const int i = 1;
public static ILogException GetFactory()
{
if (i == 1)
{
return new FileExceptionLogger();
}
else if (i == 2)
{
return new DBExceptionLogger();
}
else
{
return new ServiceExcetionLogger();
}
}
}
我知道这不是最好的实现,但我计划改变它。
现在FileSystemLogger
,DatabaseLogger
它本身就是一个工厂,我想将以下实现分组FileSystemLogger
,DatabaseLogger
以便客户可以拥有FileSystemLoggerFactory
和DatabaseLoggerFactory
文件系统记录器
- 平面文件系统记录器
- XMLFileSystemLogger
数据库记录器
- SQLSERVER记录器
- 甲骨文记录器
我应该如何继续定义FileSystemLoggerFactory
and DatabaseLoggerFactory
?