如果您将这么多配置参数传递到您的类中,它可能有太多责任。您应该考虑将其分解为仅具有单一职责的较小类。
避免使用 new 关键字可能很有价值,因为它会产生对实现类的依赖。更好的解决方案是使用依赖注入。
例如
public interface IDoStuff
{
void DoStuff();
}
public class DoStuffService
{
private IDoStuff doer;
public DoStuffService()
{
//Class is now dependant on DoLotsOfStuff
doer = new DoLotsOfStuff(1,true, "config string");
}
}
public class DoStuffBetterService
{
private IDoStuff doer;
//inject dependancy - no longer dependant on DoLotsOfStuff
public DoStuffBetterService(IDoStuff doer)
{
this.doer = doer;
}
}
显然,您仍然必须创建在某处传递的 IDoStuff 对象。控制反转 (IoC) 容器是帮助实现这一点的好工具。如果您有兴趣了解更多信息,这里是Castle Windsor Container的一个很好的教程。(还有很多其他的 IoC 容器,我只是碰巧使用了这个。)
您问题中的示例非常抽象,所以我希望这个答案会有所帮助。