在我的公司里,我们有一个基于这个模式构建的项目。我想知道这是一种现有和公认的设计模式、各种模式的组合,还是只是对问题的一种方便的编码解决方案。
interface IService <TRequest, TResponse>
where TRequest : IRequest, TResponse : IResponse
{
TResponse ProcessRequest(TRequest request);
}
public class ConcreteService : IService<ConcreteRequest, ConcreteResponse>
{
public ConcreteResponse ProcessRequest(ConcreteRequest request)
{
// Do some stuff to create the ConcreteResponse object
}
}
然后在web服务操作中:
[WebMethod]
public ConcreteResponse SomeService(ConcreteRequest request)
{
// Do some validations...
// And then...
var service = new ConcreteService();
return service.ProcessRequest(request);
}
注意: 我曾见过其他现实世界的项目采用类似的方法。