のは、私が手続き持っていると言うものを行うに:
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);
}
しかし、その場合、外部インターフェイスが1つの静的メソッドのみで構成されるクラスがあり、これも奇妙に感じます。
したがって、私の質問:このタイプのクラスには定評のあるパターンがありますか?
- エントリポイントが1つしかない
- 「外部的に認識可能な」状態がありません。つまり、インスタンス状態はその1つのエントリポイントの実行中にのみ必要です。
bool arrayContainsSomestring = new List<string>(stringArray).Contains("somestring");
気にかけたのは、特定の情報とLINQ拡張メソッドが利用できないということだけでした。うまく機能し、if()
フープを飛び越える必要なしに条件に収まります。もちろん、そのようなコードを書いている場合は、ガベージコレクションされた言語が必要です。