내 응용 프로그램에서 일련의 유효성 검사 클래스를 만들어 예를 들어 WinForm에서 클래스의 Name 속성을 입력 한 사용자가 varchar()의 크기를 초과하지 않았는지 확인합니다. 데이터베이스클래스 데이터 유효성 검사
현재 이름 필드가 너무 큰 경우 유효성 검사 코드가 맞춤 예외를 throw합니다. (사용자 정의 예외는 UI에 걸리면 일반 예외에 대한 내 일반 오류 양식과 달리 MessageBox에 사용자 정의 예외 메시지를 표시합니다.) 유효성 검사 클래스는 앱의 클래스 라이브러리에 있으며 친구로 범위가 지정됩니다. 흐름은 다음과 같습니다 다음 윈폼에서 사용
- DLL의 공공 서비스 레이어 - (전화) -> 친구 유효성 검사 계층
- 윈폼에서 사용하는 DLL의 공공 서비스 레이어 - (통화) - -> 친구 데이터 액세스 레이어 유효성 검사가 성공하면
간단한 예 : 그것은 다시 유효성 검사가 실패 UI에 대한 유효성 검사 레이어 던져 사용자 정의 예외를 가지고있는 "스마트"디자인은
Public Shared Sub CreateCustomer(cust as Customer)
Validation.Customer.ValidateForCreate(cust) ' scoped as Friend
Dal.Customer.Create(cust) ' scoped as Friend
End Sub
인가?
유효성 검사 레이어에서 True/False를 반환하고 실패한 String 메시지와 함께 서비스 레이어 핸들에서 예외를 throw하는 것이 더 나은 설계입니까?
유효성 검사 레이어에서 True/False를 반환하고 실패한 문자열 메시지와 함께 UI에 True/False로 버블 링하는 것이 더 좋은 설계입니까?
저는 객체 지향 접근법을 유지하려고합니다. 내 생각에 OOP 원칙을 위반하지 않는 사용자 정의 예외를 던지면 다른 의견도 표시됩니다. :)
UI에서 또는 첫 번째 위반시 실패합니까? –
처음에는 실패합니다. – HardCode
흠. "위반"모음을 반환하면 사용자 지정 예외에 대한 좋은 설명이 될 것이라고 제안하려고했습니다.당신 만이 당신의 요구 사항을 알고 있지만, 나는 사용자가 좌절감을 느낄 것이라고 염려합니다 ... –