以下は、コントロール ブレーク パターンの再利用可能なソリューションを作成する試みです。これは、コマンド パターン (アクションおよびテスト インターフェイス) に基づいて構築されています。しかし、私の古い COBOL の考え方が邪魔になっていることに気付きました。なぜなら、このソリューションは、「グローバル変数」にアクセスできる Action オブジェクトと Test オブジェクトのそれぞれに基づいているからです。そして、その直後の私の考えは、「このような変数アクセスの必要性 (より広い範囲) は、すでに発明された車輪に違いない.
以下のすべてのアクションとテストに変数のグループへのアクセスを許可する方法 - これは再利用可能なソリューションであるはずなので、不確定なグループですか??
public class ControlBreak {
public static void controlBreak(Action initialize,
Test endOfInput,
Test onChange,
Action breakAction,
Action detailAction,
Action getNext) {
boolean hasProcessed = false;
getNext.execute();
for (initialize.execute();endOfInput.test();detailAction.execute(),getNext.execute()) {
hasProcessed = true;
if (onChange.test()) {
breakAction.execute();
}
detailAction.execute();
}
if (hasProcessed) {
breakAction.execute();
} else {
// throw empty input exception
}
}
}