1

メソッドが検証プロセスの内部ステップであるユーティリティ クラスを実装したいと考えています。これにはパターンがありますか、それともまったく異なるアプローチを使用する必要がありますか? 私は提案を受け付けています。(私はabapでコーディングしていますが、それは重要だとは思いません)

編集:テキストのフロントエンド検証ではなく、特定の条件が一致するかどうかのチェックです。(パラメータは実際にはテーブルです。他のデータベーステーブルに有効なエントリがある場合、例として一致する条件があるかどうかを行ごとに確認します。)

このようなもの:

Class Validator 
{
   private bool flag_error;

   private Step1 ( var a, var b )
   {
     //do somthing ...
   }

   private Step 2 ( var a )
   { 
     //do somthing ...
   }

   private Step 3 ( var c )
   {
     //do somthing ...
   }

   static Check(var a, var b, var c)
   {
    Step1(a, b );
    Step2( a );
    Step3( c );
    return flag_error;
    }
}

使用法:

if (Validator.Check(a,b,c) )
{
 //do good stuff
}
else
{
 //do error handling
};
4

4 に答える 4

3

設計上の決定は、実際には詳細に依存します。複数のバリデーターアルゴリズムの実装はありますか?ストラテジーまたはテンプレートメソッドパターンを試してください。

これらの複数のステップを実行するこの1つのクラスのみが必要な場合は、すでにパターンComposedMethodを実装しています。単純にする。本当に必要な場合を除いて、複雑さのレイヤーを追加しないでください。

于 2009-06-24T18:24:42.383 に答える
0

私はかつてビジター パターンを書きましたが、これは実際の検証をフィールドから分離するのに非常にうまく機能しました。

于 2009-06-23T10:29:00.820 に答える
0

検証目的で C# 属性を使用します。詳細な記事はこちらでご覧いただけます。これは、規則よりも構成による検証を実装するのに役立ちます。この手法を使用すると、検証ルーチンが非常に抽象的になり、再利用可能になります。

于 2009-06-23T10:36:07.090 に答える