ডিটিও এবং ডিএও ধারণা এবং এমভিসি [বন্ধ]


133

1) কেন আমরা ব্যবহার করি DTOএবং DAO, এবং কখন তাদের ব্যবহার করা উচিত। GUIডেটা সন্নিবেশ, সম্পাদনা, মুছে ফেলার জন্য আমি একটি জাভা সফ্টওয়্যার তৈরি করছি । কিন্তু আমি মাঝে পার্থক্যটা উল্লেখ করা সংগ্রাম করছি DTO/DAOএবং Model, View, Controller(MVC) কাঠামো? তারা কি অনুরূপ, যা জাভা মাধ্যমে ডেটাবেস সাথে ইন্টারঅ্যাক্ট করার সময় ব্যবহার করা ভাল GUI

২) একটি বিষয় সম্পর্কে আমি সত্যিই আগ্রহী তা হ'ল এটি একটি অনুশীলন viewএবং Controllerএক শ্রেণিতে থাকা ভাল অনুশীলন কিনা । যদি আমরা এটির বিষয়ে চিন্তা করি Netbeans, আপনি GUIফ্রেম ক্লাস তৈরি করতে এবং ফ্রেমের মতো উপাদানগুলি যুক্ত করতে পারেন JButton, বোতামটিতে ডাবল ক্লিক করলে আপনাকে সেই actionListenerপদ্ধতিতে (নিয়ন্ত্রণকারী) নিয়ে যাবেন যা ব্যবহারকারীর কাছে ডেটা প্রদর্শিত হবে বলে মনে হয় (দেখুন) । সুতরাং তারা একই ক্লাসে আছেন। তা কি পুরোপুরি ধারণাটির বিপক্ষে চলছে নাকি?

এখানে আমি যা বলছি তা এই

খারাপ অনুশীলন একটি ক্লাসে দেখুন এবং নিয়ামক আছে?


@ রোমানসির একটি ডাটাবেস টেবিল রয়েছে যা ইভেন্টগুলি (ইভেন্টআইড, নাম, তারিখ.ইটিসি) ধারণ করে, তাই ডিটিও এবং এমভিসি একই বা আলাদা?
হুডি

ডাটাবেসে আপনার ডিটিও নয় তবে ডাটাবেস অবজেক্ট।
রোমান সি

জাভা ক্লাসে @ রোমানস দুঃখিত, ডিটিও / ডিএও কাঠামো ব্যবহার করে বা এমভিসি ব্যবহার করা উচিত? পার্থক্য কী
হুডি

পড়া এই এবং যে পার্থক্য পরীক্ষা
রোমান সি

আপনি দ্বিতীয় ডিফ এ ডাটাবেস সম্পর্কে পড়েন?
রোমান সি

উত্তর:


269

DTOডেটা ট্রান্সফার অবজেক্টের একটি সংক্ষেপণ , সুতরাং এটি আপনার অ্যাপ্লিকেশনটির ক্লাস এবং মডিউলগুলির মধ্যে ডেটা স্থানান্তর করতে ব্যবহৃত হয়।

  • DTO আপনার ডেটা, গেটার্স, সেটটারস এবং কনস্ট্রাক্টরগুলির জন্য কেবল ব্যক্তিগত ক্ষেত্র থাকা উচিত।
  • DTO এ জাতীয় ক্লাসে ব্যবসায়ের যুক্তিযুক্ত পদ্ধতি যুক্ত করার পরামর্শ দেওয়া হয় না তবে কিছু ব্যবহারের পদ্ধতি যুক্ত করা ঠিক আছে।

DAOডেটা অ্যাক্সেস অবজেক্টের একটি সংক্ষেপণ , সুতরাং এটি আপনার ডেটা স্টোরেজে ডেটা পুনরুদ্ধার, সংরক্ষণ এবং আপডেট করার জন্য যুক্তিটি আবদ্ধ করতে হবে (একটি ডাটাবেস, একটি ফাইল-সিস্টেম, যাই হোক না কেন)।

ডিএও এবং ডিটিও ইন্টারফেসগুলি দেখতে কেমন তার একটি উদাহরণ এখানে দেওয়া হয়েছে:

interface PersonDTO {
    String getName();
    void setName(String name);
    //.....
}

interface PersonDAO {
    PersonDTO findById(long id);
    void save(PersonDTO person);
    //.....
}

MVCএকটি বৃহত্তর প্যাটার্ন। ডিটিও / ডিএও এমভিসি প্যাটার্নে আপনার মডেল হবে।
এটি আপনাকে ডেটা পুনরুদ্ধারের জন্য দায়বদ্ধ অংশ নয়, পুরো অ্যাপ্লিকেশনটি কীভাবে সংগঠিত করবেন তা আপনাকে জানায়।

দ্বিতীয় প্রশ্ন হিসাবে, আপনার যদি একটি ছোট অ্যাপ্লিকেশন থাকে তবে এটি সম্পূর্ণরূপে ঠিক আছে, তবে আপনি যদি এমভিসি প্যাটার্নটি অনুসরণ করতে চান তবে আলাদা কন্ট্রোলার রাখা ভাল , যা আপনার ফ্রেমের জন্য পৃথক শ্রেণিতে ব্যবসায়িক যুক্তি যুক্ত করে এবং ইভেন্ট হ্যান্ডলারের কাছ থেকে এই নিয়ামককে বার্তা প্রেরণ করুন।
এটি আপনার ব্যবসায়ের যুক্তি দর্শন থেকে আলাদা করবে।


2
সম্ভবত আমি প্রশ্নটি ভুল বুঝেছি।
পেট্রা

4
আপনি "পৃথক নিয়ামক" বলতে কী বুঝছেন তা আমি নিশ্চিত নই। আমার পড়া থেকে, এমভিসির নিয়ামক যতটা সম্ভব চর্মসার হওয়া উচিত এবং আপনার ব্যবসার যুক্তিটি আপনার মডেলগুলিতে আবশ্যক।
পল কার্লটন

4
অবজেক্ট মডেলটিকে ইন্টারফেসে ডিটিও ব্যবহার করা একটি ভয়ানক অনুশীলন। অকার্যকর সেভ (পার্সোনডিটিও ব্যক্তি) খাঁটি ক্যান্সার।
বেন

3
POJO এর মতো ক্লাস অবজেক্ট থাকা অবস্থায় আমাদের কেন ডিটিও দরকার? তারা উভয় একই হয় না?
ভড়গব

3
@ ভরগাভ ডিটিওগুলি সত্তা থেকে একাধিক সত্তার (POJOs) সম্মিলিত ফলাফল বা সীমিত সংস্থাগুলির ফিরে আসতে ব্যবহৃত হয়।
TheCoder
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.