0

データセットで実行したいアルゴリズムのリストがあります。たとえば、私のデータセットが住所のリストであるとします。アドレスの有効性を確認する必要がありますが、検証するためのいくつかの異なるアルゴリズムがあります。私が持っていると言うvalidation_onevalidation_two。ただし、将来的には、などを追加する必要がありvalidation_threeますvalidation_four。アドレスリストで実行するには、すべての検証が必要です。新しい検証が追加された場合も同様です。

これに合うデザインパターンはありますか?戦略はアルゴリズムを選択するためのものであることは知って いますが、データセットにすべてのアルゴリズムを適用する方法が特に必要です。

4

3 に答える 3

2

あなたは言語を述べていませんが、ジェネリックスがあると仮定しています。

与えられたDataSet<T>

また、相互検証が必要ないと仮定します(つまり、各Tは独自のデータによって完全に検証できます)

単一のメソッドを使用して、検証戦略を宣言します。

IValidate<T>{bool validate(T item);} 

validate_one、validation_two…。この戦略を実装します

実装List<IValidate<T>>を追加および削除できるを用意します。

データセット内のForeachアイテムは、リスト内の各ストラテジーを呼び出します。

次に、障害への対処方法を選択します。

于 2012-08-22T18:36:24.557 に答える
-1

複合。

これは基本的に他の2つの答えが等しいものです。

最初の答えは、COmpositeの実装です。2つ目は、コンポジットとしての責任の連鎖です。

于 2012-08-23T07:33:59.670 に答える
-1

これは、Chain of Responsibilityのように聞こえます。チェーン内のすべてのハンドラーがリクエストを受け入れ、次のハンドラーに渡します。

于 2012-08-22T18:37:32.267 に答える