假设我有一个程序可以执行以下操作:
void doStuff(initalParams) {
...
}
现在,我发现“做事”是相当复杂的操作。该过程变得很大,我将其拆分为多个较小的过程,很快我意识到在进行填充时具有某种状态会很有用,因此我需要在较小的过程之间传递较少的参数。因此,我将其纳入自己的类中:
class StuffDoer {
private someInternalState;
public Start(initalParams) {
...
}
// some private helper procedures here
...
}
然后我这样称呼它:
new StuffDoer().Start(initialParams);
或像这样:
new StuffDoer(initialParams).Start();
这就是感觉不对的地方。使用.NET或Java API时,我始终不会调用new SomeApiClass().Start(...);
,这使我怀疑自己做错了。当然,我可以将StuffDoer的构造函数设为私有,并添加一个静态辅助方法:
public static DoStuff(initalParams) {
new StuffDoer().Start(initialParams);
}
但是然后我有了一个其外部接口仅包含一个静态方法的类,这也感觉很奇怪。
因此,我的问题是:这种类型的类是否有公认的模式?
- 只有一个入口
- 是否没有“外部可识别”状态,即实例状态仅在执行该入口点时需要?
bool arrayContainsSomestring = new List<string>(stringArray).Contains("somestring");
我只关心特定信息,而LINQ扩展方法不可用。可以正常工作,并且适合if()
状况内,而无需跳过箍。当然,如果要编写这样的代码,则需要使用垃圾回收语言。