Jam*_*mie 0 c# design-patterns
我在类中有几个具有相同逻辑的方法,但我看不出如何避免重复?每个方法在内部调用另一个服务,但内部服务调用之前和之后的逻辑是相同的,请参阅下面的代码片段.
任何帮助赞赏!
非常感谢,
码
public List<Customer> GetCustomerDetail(int id)
{
_log.debug("xxx");
if(something)
{
_log.debug("yyy");
}
var results = _internalService.GetCustomer(id);
if(results == null)
{
_log.debug("no results");
}
return results;
}
public List<Customer> GetCompanyDetail(int id)
{
_log.debug("xxx");
if(something)
{
_log.debug("yyy");
}
var results = _internalService.GetCompany(id);
if(results == null)
{
_log.debug("no results");
}
return results;
}
...
Run Code Online (Sandbox Code Playgroud)
小智 5
使用代表:
public List<Customer> GetCustomerDetail(int id)
{
return DoIt( () => _internalService.GetCustomer(id) );
}
public List<Customer> GetCompanyDetail(int id)
{
return DoIt( () => _internalService.GetCompany(id) );
}
private T DoIt<T>( Func<T> func )
{
_log.debug("xxx");
if(something)
{
_log.debug("yyy");
}
var results = func();
if(results == null)
{
_log.debug("no results");
}
return results;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
81 次 |
最近记录: |