처음에는 사과드립니다. 특정 문제보다는 디자인 문제가 더 많아서 간단한 답이 없을 수도 있습니다. 어쨌든 트랜잭션을 처리하는 코드가 상당히 복잡합니다. 창고 시스템에서. 트랜잭션 자체는 화면에 입력 할 필드를 결정하는 스위치로 사용자 정의됩니다. 명령 객체를 사용하여 양식을 처리/유효성을 검사합니다. 유효성 검사 단계의 대부분은 간단하지만 일부는 약간 까다롭고 화면 필드간에 상호 종속성이 있습니다. 예를 들어 사용자가 직렬 참조를 입력하라는 메시지가 표시 될 수 있지만 그 상자가 고유하게 식별되지 않으면 그것과 함께 갈 부품에 대해 물어보십시오. 나는이 조합을 검증하기 위해 데이터베이스를 쳤다. 화면에는 사용자가 입력 할 문서 참조가있을 수도있다. 이것은 차례로 부품/시리얼과 상호 참조 될 수있다. 화면에 (데이터베이스를 치는 것에 의해) 파트/시리얼이 문서에 대한 것인지를 확인하십시오. 이것은 트랜잭션에 정의 된 내용에 따라 더 많은 상호 참조 및 유효성 검증을 통해 계속됩니다. 내가 끝내는 것은 '이것이 입력되고 이것이 입력되면 .. validate .. else .. validate'명령 객체에 내용을 입력하면 정말 못생긴 것처럼 보입니다. 그래서 제 질문은 : 유효성 검사 명령 개체 (모든 데이터베이스 검사 등) 또는 어딘가에 그것을 넣어 더 나은 거기에 내가 할 수있는 모든 내 복잡한 모든 경우/다른 사람보다 콤보 명령 개체가 주어진 콤보보다 더 할 수 있습니까? 나는 현재의 명령 객체가 좀더 스폰 할 수있는 부가적인 클래스를 만들려고 생각했다. 그것들을 검증 할 수있게 만들었고 로직을 퍼뜨릴 수 있었다. 만약 누군가가 칩을 사용하고 싶다면 토론에 감사 드린다 ..Grails commandObject - 모범 사례 설계
Joshua의 의견 나는이 완료되지이다 .. 서비스에 코드를 리팩토링 시작했습니다하지만이 정보가 올바른 선택을 수집하는 명령 개체를 사용하여 ..
감사합니다 .. 나는 그것이 나를 소요 얼마나 볼 수 있습니다 - 특히 나의 경우 추한, 다른 구조 ... – user3914455
당신은 할 수 있습니다와 FSM에 그 리팩토링 고려 (유한 상태 기계). –
약간의 코드를 살펴보고 내가 올바른 라인에 있다면 알려주시겠습니까? – user3914455