想要实现一个实用程序类,哪些方法代表验证过程中的步骤。那是一种模式还是最佳实践?

StackOverflow https://stackoverflow.com/questions/1031643

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

解决方案

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

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

其他提示

有一个模板浮现在脑海中。这是模板模式

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

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

我使用C#属性进行验证。您可以在此处找到详细的文章。这有助于您通过常规配置实现验证。使用这种技术,您的验证例程变得高度抽象和可重用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top