class LogUtil<T> : ILogUtility
{
log4net.ILog log;
public LogUtil()
{
log = log4net.LogManager.GetLogger(typeof(T).FullName);
}
public void Log(LogType logtype, string message)
{
Console.WriteLine("logging coming from class {0} - message {1} " , typeof(T).FullName, message);
}
}
public class Logger
{
ILogUtility _logutility;
public Logger(ILogUtility logutility)
{
_logutility = logutility;
}
public void Log(LogType logtype, string message)
{
_logutility.Log(logtype, message);
}
}
我需要具有灵活的功能,并且能够在将来删除 LogUtil 类并使用其他东西。
所以我编写 LoggerUtility 包装类如下:
class LoggerUtility<T>
{
Logger logger;
public LoggerUtility()
{
LogUtil<T> logutil = new LogUtil<T>();
logger = new Logger(logutil);
}
public void Log(LogType logtype, string message)
{
logger.Log(logtype, message);
}
}
我的客户端代码如下:
public class TestCode
{
public void test()
{
new LoggerUtility<TestCode>().Log(LogType.Info, "hello world");
}
}
为了从 LogUtil 获得松耦合,我最终编写了 2 个包装类 Logger 和 LoggerUtility。所以将来,如果我必须在 ILogUtility 中添加另一个方法,我必须将该方法添加到 Logger 类,然后是 LoggerUtility。
编写 LoggerUtility 的最佳方法是什么,以便我可以编写客户端代码如下:
new LoggerUtility<TestCode>().Log(LogType.Info, "hello world");
请告诉我。
谢谢