我有某些代码模式(记录每个函数的性能和其他变量),每个函数都需要这些代码模式,我不想一遍又一遍地重复代码。代码如下所示:
public OutClass FUNC-X
{
if (IsDebugEnabled)
{
Logger("Start DataLibrary: FUNC-X");
}
try
{
CheckInitSucceeded();
GetAuthenticationTokens();
var dm = new Manager();
/**
* THIS SINGLE LINE IS THE VARIABLE PART
**/
var output = dm.FUNC-X(...);
if (IsDebugEnabled)
{
var data = Serialize(output);
Logger(output);
}
return output;
}
catch (WebFaultException)
{
throw;
}
catch (OtherException ex)
{
if (Logger.IsErrorEnabled)
{
Logger.LogError("Exception in FUNC-X", ex);
}
throw new OtherException("Some Message");
}
catch (Exception ex)
{
if (IsErrorEnabled)
{
Logger("Exception in FUNC-X", ex);
}
throw new Exception("Generic Exception");
}
finally
{
if (IsDebugEnabled)
{
Logger("End FUNC-X");
}
}
}
本质上,我只需要在这个名字出现的任何地方用 FUNC-Y 或 FUNC-Z 替换 FUNC-X,有没有我可以遵循的某种设计模式?
如果问题含糊不清,我很抱歉,我很乐意提供您询问的任何细节。