मेरे पास मेरे आवेदन में सत्यापन की दो परतें हैं। सबसे पहले बीन सत्यापन API (उदाहरण के लिए आवश्यक फ़ील्ड) द्वारा निष्पादित इकाई सत्यापन है। दूसरा स्तर व्यापार तर्क सत्यापन है। उदाहरण के लिए, उपयोगकर्ता के पास एक पोस्ट है। केवल अगर वह इस पोस्ट और पोस्ट रेटिंग < 50. तो मैं इस तरह कुछ करने के लिए के एक निर्माता है उपयोगकर्ता एक पोस्ट हटा सकते हैं:व्यापार तर्क सत्यापन पैटर्न और सलाह
if (post.getCreator().equals(session.getUser())) {
if (post.getRating() < 50) {
postRepository.delete(post);
} else errors.add(400, "Cant delete post with rating 50 or higher")
} else errors add (400, "You should be owner of the post")
मैं इस तरह से पसंद नहीं है के रूप में इस सशर्त, पुन: उपयोग कर रहे हैं और मैं कोड डुप्लिकेट करना है। इसके अलावा, यदि सशर्त संख्या 5 से अधिक है या तो कोड को पढ़ने और समझने के लिए यह अवास्तविक हो जाता है।
इसके अलावा, मानक स्प्रिंग सत्यापनकर्ता के रूप में मैं विभिन्न कार्यों पर एक इकाई के लिए निर्माता अलग सत्यापन करने के लिए है (हटा सकते हैं और उदाहरण के लिए अद्यतन)
तो मैं यह करने के लिए एक तरह से तलाश कर रहा हूँ बहुत उपयोगी साबित नहीं होगा एक बेहतर तरीके से (शायद पैटर्न) और अगर कोई मुझे संकेत दे तो मैं बहुत आभारी रहूंगा।
अग्रिम धन्यवाद!
क्या होगा अगर सत्यापन विधि के पैरामीटर शर्त से भिन्न होते हैं? आइए कहें वीजा कार्डनंबर एक पूर्णांक है और इसमें 4 अंकों का कोड भी है, लेकिन मास्टर कार्ड नंबर एक 16 अंकों का नंबर है? – ahmet