检查以下简化的示例代码:
public class RequestManager
{
public RequestManager()
{
}
public void ProcessRequest(byte[] data)
{
IRequest request = new Request(data);
request.Send();
}
}
当我发现自己使用此代码能够对其进行测试时,我以:
public class RequestManager
{
private IRequestFactory requestFactory;
public RequestManager(IRequestFactory requestFactory)
{
this.requestFactory = requestFactory;
}
public void ProcessRequest(byte[] data)
{
IRequest request = this.requestFactory.CreateRequest(data);
request.Send();
}
}
CreateRequest 方法只有新的 Request(data) 所以我可以模拟工厂并返回一个模拟。
问题是我开始有很多工厂来完成如此简单的任务,我想知道这是否正常,或者是否有模式或其他方法可以帮助我克服这个问题。
有任何想法吗?提前致谢。