ডেটা বৈধকরণের জন্য নকশার প্যাটার্ন


23

এই সমস্যার জন্য সেরা নকশার প্যাটার্নটি কী হবে:

আমার একটি অবজেক্ট এ। অবজেক্ট এ ব্যবহারকারীর অনুরোধের ভিত্তিতে ডাটাবেস থেকে নিবন্ধিত বা মুছে ফেলা যাবে।

তথ্য বৈধকরণ নিবন্ধকরণ বা অবজেক্টটি মুছে ফেলার আগে সঞ্চালিত হয়। অবজেক্টটি রেজিস্ট্রেশন করার আগে নিয়মের একটি সেট এবং মোছার জন্য নিয়মের আরও একটি সেট রয়েছে। উভয় ক্রিয়াকলাপের জন্য এই বিধিগুলির কয়েকটি সাধারণ।

এখনও অবধি, আমি মনে করি চেইন অফ রেসপন্সিবিলিটি ডিজাইনের ধরণটি সর্বাধিক ফিট করে তবে এটি বাস্তবায়নে আমার সমস্যা হচ্ছে।


6
চেইন অফ দায়সিবিলিটি ডিজাইনের প্যাটার্নটি কি সেরা ফিট বলে আপনি মনে করেন?
অ্যাডাম জুকারম্যান

উত্তর:


17

সাধারণত আমি প্রতিটি ব্যবহারের ক্ষেত্রে বৈধতা দেওয়ার জন্য একটি পৃথক বৈধকারীর শ্রেণি ব্যবহার করব। উদাহরণস্বরূপ, ডাটাবেসে পণ্য যুক্ত করার আগে, আমি ব্যবসায়ের নিয়ম যাচাই করার জন্য অ্যাডপ্রোডাক্টভালিডেটর ব্যবহার করব, পণ্য মুছে ফেলার আগে, আমি মুছে ফেলতে প্রোডাক্টভালিডেটর ব্যবহার করব ইত্যাদি। সাধারণ ব্যবসার নিয়মকে স্পেসিফিকেশন ক্লাসে (স্পেসিফিকেশন প্যাটার্ন) এক্সট্রাক্ট করা যায় এবং বৈধকারী শ্রেণীর দ্বারা ভাগ করা যায়

গঠন যাচাইকারী বর্গ করার জন্য, আমি পদ্ধতির এখানে অনুসরণ করুন: http://lostechies.com/jimmybogard/2007/10/24/entity-validation-with-visitors-and-extension-methods/

আপনি .NET ব্যবহার করেন, তাহলে আমার মনে হয় আপনি সাবলীল ভ্যালিডেশন (বিবেচনা করতে পারে https://github.com/JeremySkinner/FluentValidation )। আমি মনে করি এটি বেশ শীতল এবং আমি উপরে উল্লিখিত নিবন্ধটির বেশ কাছেই


1
ফ্লুয়েন্ট বৈধকরণের
ব্রিজ

4

বর্ণিত হিসাবে, আমি সম্ভবত একটি বিকল্প ধরণের প্রয়োগ করব । এই ভাবে আমি একটা "কিছুই না" বা যাচাই মান (সম্ভবত প্রখর রৌদ্রে) আসতে পারে কিন্তু যে একটি বাস্তবায়ন বিস্তারিত এবং বিশালাকার একটি ব্যবহার করার ব্যাপারে চমত্কারভাবে এর প্রসাধক

সাজসজ্জা প্যাটার্ন

অবশ্যই যদি ইন্টারফেসটি কুৎসিত হয়ে যায় আমি একটি ফ্যাসাদ ব্যবহার করব ।


ডেকোরেটর কাজ করবে, তবে আপনি সাধারণত অন্য শ্রেণীর ব্যবহারের জন্য আউটপুটকে ইনপুটতে রূপান্তর করতে চাইলে ডেকরেটর প্যাটার্নটি এমন কিছু হিসাবে ব্যবহার করার মতো মনে করি। এই ক্ষেত্রে আপনি কেবল বৈধতা যাবেন। আমি মনে করি দায়বদ্ধতার কাজটি ইমো আরও ভালভাবে কাজ করতে পারে।
নিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.