এখানে সরলীকৃত প্রয়োজনীয়তা রয়েছে:
ব্যবহারকারী
Question
একাধিকAnswer
গুলি সহ একটি তৈরি করে ।Question
কমপক্ষে একটি থাকতে হবেAnswer
।ব্যাখ্যা: মনে
Question
এবংAnswer
একটি হিসেবে পরীক্ষা : একটা প্রশ্ন আছে, কিন্তু বিভিন্ন উত্তর, যেখানে কয়েক সঠিক হতে পারে। ব্যবহারকারী এই অভিনেতা যিনি এই পরীক্ষাটি প্রস্তুত করছেন, তাই তিনি প্রশ্ন ও উত্তর তৈরি করেন।
আমি এই সহজ উদাহরণটি মডেল করার চেষ্টা করছি তাই 1) কোডটি দিয়ে বাস্তবের সাথে বাস্তব জীবনের মডেল 2 এর সাথে মেলে), যাতে সম্ভাব্য অপব্যবহার এবং ত্রুটিগুলি হ্রাস করতে এবং বিকাশকারীদের কীভাবে মডেলটি ব্যবহার করতে হয় তার ইঙ্গিত দেওয়ার জন্য।
প্রশ্ন একটি সত্তা , যখন উত্তর মান অবজেক্ট । প্রশ্নের উত্তর রয়েছে। এখন পর্যন্ত আমার কাছে এই সম্ভাব্য সমাধান রয়েছে।
[ক] ভিতরে কারখানাQuestion
Answer
ম্যানুয়ালি তৈরির পরিবর্তে , আমরা কল করতে পারি:
Answer answer = question.createAnswer()
answer.setText("");
...
এটি একটি উত্তর তৈরি করবে এবং এটিকে প্রশ্নে যুক্ত করবে। তারপরে আমরা এর বৈশিষ্ট্যগুলি সেট করে উত্তর হেরফের করতে পারি। এইভাবে, শুধুমাত্র প্রশ্নগুলি একটি উত্তর তৈরি করতে পারে। এছাড়াও, আমরা কোনও প্রশ্ন ছাড়াই উত্তর পেতে বাধা দেব। তবুও, উত্তর তৈরিতে আমাদের নিয়ন্ত্রণ নেই, কারণ এটি হার্ডকোডে রয়েছে Question
।
উপরের কোডটির 'ভাষা' নিয়েও একটি সমস্যা রয়েছে। ব্যবহারকারী হলেন যিনি উত্তর তৈরি করেন, প্রশ্ন নয়। ব্যক্তিগতভাবে, আমি পছন্দ করি না যে আমরা মান বস্তু তৈরি করি এবং বিকাশকারীকে এটির মান পূরণ করার জন্য নির্ভর করে - কীভাবে তিনি নিশ্চিত হতে পারেন যে কী যুক্ত করতে হবে?
[খ] প্রশ্নের ভিতরে কারখানা, # 2 নিন
কেউ কেউ বলেছেন যে আমাদের এই ধরণের পদ্ধতি থাকা উচিত Question
:
question.addAnswer(String answer, boolean correct, int level....);
উপরের সমাধানের অনুরূপ, এই পদ্ধতিটি উত্তরের জন্য বাধ্যতামূলক ডেটা গ্রহণ করে এবং এমন একটি তৈরি করে যা প্রশ্নের সাথে যুক্ত হবে।
এখানে সমস্যা যে আমরা হয় নকল প্রস্ততকর্তার Answer
কোন ভাল কারণে। এছাড়াও, প্রশ্ন কি সত্যই একটি উত্তর তৈরি করে?
[সি] নির্মাতা নির্ভরতা
আসুন আমাদের নিজের দ্বারা দুটি অবজেক্ট তৈরি করতে মুক্ত থাকুন। আসুন নির্ধারকের ডান নির্ভরতাও প্রকাশ করি:
Question q = new Question(...);
Answer a = new Answer(q, ...); // answer can't exist without a question
এটি বিকাশকারীকে ইঙ্গিত দেয়, কারণ প্রশ্ন ছাড়া উত্তর তৈরি করা যায় না। তবে, আমরা সেই 'ভাষা' দেখতে পাই না যা বলে যে প্রশ্নের উত্তরে 'যুক্ত' রয়েছে। অন্যদিকে, আমাদের কি এটি দেখার দরকার আছে?
[ডি] নির্ধারক নির্ভরতা, # 2 নিন take
আমরা বিপরীতে করতে পারি:
Answer a1 = new Answer("",...);
Answer a2 = new Answer("",...);
Question q = new Question("", a1, a2);
এটি উপরের বিপরীত পরিস্থিতি। এখানে উত্তরগুলি কোনও প্রশ্ন ছাড়াই থাকতে পারে (যা বোঝায় না) তবে উত্তর ছাড়া প্রশ্ন থাকতে পারে না (যা বোঝায়)। এছাড়াও, 'ভাষা' এখানে যে প্রশ্ন সম্পর্কে আরও স্পষ্ট হবে আছে উত্তর।
[ই] সাধারণ উপায়
এটিই আমি সাধারণ উপায়ে ডাকি, পিপিএল সাধারণত যে কাজটি করে:
Question q = new Question("",...);
Answer a = new Answer("",...);
q.addAnswer(a);
যা উপরোক্ত দুটি উত্তরের 'আলগা' সংস্করণ, কারণ উত্তর এবং প্রশ্ন উভয়ই একে অপর ছাড়া থাকতে পারে। কোন বিশেষ ইঙ্গিত পথ পাবো না আছে তাদের একসঙ্গে বাঁধাই করার।
[এফ] সংযুক্ত
অথবা আমাকে সি, ডি, ই - এর একত্রিত করা উচিত কীভাবে সম্পর্ক তৈরি করা যায় তার সমস্ত উপায়গুলি কভার করার জন্য, যাতে বিকাশকারীদের পক্ষে তাদের পক্ষে সর্বোত্তম যা ব্যবহার করতে সহায়তা করা help
প্রশ্ন
আমি জানি মানুষ 'কুঁচক' এর উপর ভিত্তি করে উপরের উত্তরগুলির মধ্যে একটি চয়ন করতে পারে। তবে আমি আশ্চর্য হয়েছি যদি উপরের কোনও রূপটি আরও ভাল হয় তবে তার পক্ষে ভাল কারণ রয়েছে। এছাড়াও, দয়া করে উপরের প্রশ্নের ভিতরে ভাববেন না, আমি এখানে বেশিরভাগ ক্ষেত্রে প্রয়োগ করা যেতে পারে এমন সেরা অনুশীলনগুলি গ্রাস করতে চাই - এবং আপনি যদি সম্মত হন তবে সর্বাধিক ব্যবহারের ক্ষেত্রে কিছু সত্ত্বা একই রকম হয়। এছাড়াও, যেমন এখানে প্রযুক্তি অজ্ঞাব্যক্তিক হতে দিন। আমি ভাবতে চাই না যে ওআরএম ব্যবহার করা হচ্ছে কি না। শুধু ভাল, অভিব্যক্তিপূর্ণ মোড চাই।
এই উপর কোন জ্ঞান?
সম্পাদনা
দয়া করে এর অন্যান্য বৈশিষ্ট্যগুলি উপেক্ষা করুন Question
এবং Answer
এগুলি প্রশ্নের সাথে প্রাসঙ্গিক নয়। আমি উপরের পাঠ্য সম্পাদনা করেছি এবং বেশিরভাগ নির্মাতাকে পরিবর্তন করেছি (যেখানে প্রয়োজন রয়েছে): এখন তারা প্রয়োজনীয় সম্পত্তি মূল্যগুলির যে কোনওটি গ্রহণ করে। এটি কেবল একটি প্রশ্ন স্ট্রিং, বা বিভিন্ন ভাষা, স্ট্যাটাস ইত্যাদির স্ট্রিংয়ের মানচিত্র হতে পারে - যা কিছু সম্পত্তি পাশ করা হয়, সেগুলি এটির জন্য মনোযোগী নয়;) সুতরাং কেবল ধরে নিন আমরা প্রয়োজনীয় প্যারামিটারগুলি পেরিয়ে যাচ্ছি, যদি না আলাদা না বলা হয়। ধন্যবাদ!