想要实现一个实用程序类,其方法代表验证过程中的步骤。 是否有一个模式或最佳实践?

发布于 2024-07-26 00:51:56 字数 706 浏览 10 评论 0原文

我想实现一个实用程序类,其方法是验证过程的内部步骤。 有没有一个模式,或者我应该使用完全不同的方法? 我愿意接受建议。 (我正在 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
};

i want to implement a utility class which methods are internal steps of a validation process. Is there a pattern for this or should i use a totally different approach? Im open for suggestions. (I´m coding in abap but i dont think that is important)

Edit: Its no frontend validation of text, but a check if certain conditions are matched. (The parameter is actually a table. For each row i check if there are conditions matched as an example if there is a valid entry in an other db table.)

Somthing like this:

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;
    }
}

Usage:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

ゞ花落谁相伴 2024-08-02 00:51:56

设计决策实际上取决于细节。 会有多种验证器算法实现吗? 尝试策略模板方法 模式。

如果您只需要这个类执行这些多个步骤,那么您已经实现了一种模式,组合方法。 把事情简单化。 除非确实需要,否则不要增加复杂性。

Design decisions really depend on the details. Will there be multiple validator algorithm implementations? Try a Strategy or Template Method pattern.

If you only need this one class performing these multiple steps, you've already implemented a pattern, Composed Method. Keep it simple. Don't add layers of complexity unless they're truly needed.

残花月 2024-08-02 00:51:56

我想到了一种模式。 这是模板模式

我将使用Check创建一个抽象类如上实现以及由具体类实现的 Step 方法。

There is one patten that comes to mind. It is the template pattern

I would make an abstract class with Check implemented as above and the Step methods to be implemented by the concrete classes.

天气好吗我好吗 2024-08-02 00:51:56

我曾经编写过一个访问者模式,它非常适合将实际验证与字段分开。

I once wrote a visitor pattern, which worked quite nicely for separating the actual validation from the fields.

梦纸 2024-08-02 00:51:56

我使用 C# 属性进行验证。 您可以在此处找到详细文章。 这可以帮助您通过配置而不是约定来实现验证。 使用这种技术,您的验证例程将变得高度抽象和可重用。

I use C# attributes for validation purpose. You can find a detailed article here. This helps you to implement validation by configuration over convention. Using this technique your validation routines become highly abstract and reusable.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文