유효성 검사 프로세스에서 단계를 나타내는 유틸리티 클래스를 구현하고 싶습니다. 패턴이나 모범 사례가 있습니까?

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

문제

검증 프로세스의 내부 단계 인 유틸리티 클래스를 구현하고 싶습니다. 이것에 대한 패턴이 있습니까? 아니면 완전히 다른 접근법을 사용해야합니까? 제안을 위해 열려 있습니다. (ABAP에서 코딩하고 있지만 그것이 중요하다고 생각하지 않습니다)

편집 : 텍스트의 프론트 엔드 검증은 없지만 특정 조건이 일치하는지 확인합니다. (매개 변수는 실제로 테이블입니다. 각 행에 대해 다른 DB 테이블에 유효한 항목이있는 경우 예제로 일치하는 조건이 있는지 확인합니다.)

다음과 같은 것 :

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