インターフェイスで表されるフィルターのようなエンティティを設計し、Content オブジェクトに適用できるメソッドをFilter
宣言する必要があります。apply(Content content)
フィルターは、ワークフローと同様にチェーンで一緒に構成できますが、これらは動的です。たとえば、FilterA が X を返す場合、filterB を適用し、結果 Y を受け取ると FilterC を適用します。フィルターのチェーンはアプリケーション固有であり、フィルター チェーンの構築を許可する方法はまだ決めていません。
filter.apply(content)
この動作は、一部のワークフロー フレームワークと同じ方法で設計します。つまり、フィルターのリストを繰り返し処理し、各フィルターを呼び出すマネージャー コンポーネントです。しかし、if/else ステートメントのようなダイナミズムを許可するにはどうすればよいでしょうか?
今のところ、ワークフローまたは FilterChain インターフェースを考え、getNextFilter(previousResult)
. このインターフェイスを実装すると、アプリケーション固有のワークフローを宣言できます。しかし、Workflow インターフェイスの実装は退屈です: 現在のステップ (整数?) を追跡し、各getNextFilter()
呼び出しで、switch/case ステートメントを介して次のフィルターを決定する?!?
どのソリューションがより良いでしょうか? チェーンを宣言するには?
JavaとSpringを使っているのでIoCが使えます。