ডিটিও ব্যবহার করার মূল বিষয় কী এবং এটি কী একটি পুরানো ধারণা? আমি ডেটা স্থানান্তর এবং অব্যাহত রাখতে ভিউ লেয়ারে পোজো গুলি ব্যবহার করি । এই পজোগুলিকে কি ডিটিওর বিকল্প হিসাবে বিবেচনা করা যেতে পারে?
ডিটিও ব্যবহার করার মূল বিষয় কী এবং এটি কী একটি পুরানো ধারণা? আমি ডেটা স্থানান্তর এবং অব্যাহত রাখতে ভিউ লেয়ারে পোজো গুলি ব্যবহার করি । এই পজোগুলিকে কি ডিটিওর বিকল্প হিসাবে বিবেচনা করা যেতে পারে?
উত্তর:
ডিটিও হ'ল একটি নিদর্শন এবং এটি বাস্তবায়ন (পোগো / পোকো) স্বতন্ত্র। ডিটিও বলেছে যেহেতু যে কোনও দূরবর্তী ইন্টারফেসের প্রতিটি কল ব্যয়বহুল, তাই প্রতিটি কলের প্রতিক্রিয়া যতটা সম্ভব ডেটা নিয়ে আসা উচিত। সুতরাং, যদি কোনও নির্দিষ্ট কাজের জন্য ডেটা আনার জন্য একাধিক অনুরোধের প্রয়োজন হয়, তবে আনতে হবে এমন ডেটা একটি ডিটিওতে একত্রিত করা যায় যাতে কেবলমাত্র একটি অনুরোধ সমস্ত প্রয়োজনীয় ডেটা আনতে পারে। এন্টারপ্রাইজ অ্যাপ্লিকেশন আর্কিটেকচারের প্যাটার্নস ক্যাটালগের আরও বিশদ রয়েছে।
ডিটিও একটি মৌলিক ধারণা, পুরানো নয়।
ডিটিও একটি ধারণা হিসাবে (যে বিষয়গুলির উদ্দেশ্য সার্ভারের দ্বারা ক্লায়েন্টকে ফিরিয়ে আনার জন্য ডেটা সংগ্রহ করা) তা অবশ্যই পুরানো নয়।
কি হল কিছুটা সেকেলে DTOs যে আদৌ কোনো যুক্তি থাকতে থাকার ধারণা, ব্যবহার করা হয় শুধুমাত্র ডেটা প্রেরণের জন্য এবং ক্লায়েন্টের সাথে সংক্রমণ সামনে ডোমেইন বস্তু থেকে "ম্যাপ করা", এবং তাদের প্রদর্শন স্তরে ক্ষণস্থায়ী আগে মডেল দেখতে মানচিত্র তৈরী করেন। সাধারণ অ্যাপ্লিকেশনগুলিতে, ডোমেন অবজেক্টগুলি প্রায়শই সরাসরি ডিটিও হিসাবে পুনরায় ব্যবহার করা যায় এবং সরাসরি প্রদর্শন স্তরে পৌঁছে যেতে পারে, যাতে কেবলমাত্র একটি ইউনিফাইড ডেটা মডেল থাকে। আরও জটিল অ্যাপ্লিকেশনগুলির জন্য আপনি ক্লায়েন্টের কাছে পুরো ডোমেন মডেলটি প্রকাশ করতে চান না, তাই ডোমেন মডেল থেকে ডিটিওতে ম্যাপিং প্রয়োজনীয়। ডিটিও থেকে ডেটা সদৃশ করে এমন আলাদা ভিউ মডেল থাকা মোটেই অর্থবোধ করে না।
তবে এই ধারণাটি কেবল সাধারণ ভুলের চেয়ে পুরানো হওয়ার কারণটি হ'ল কিছু (মূলত পুরানো) ফ্রেমওয়ার্ক / প্রযুক্তিগুলির এটির প্রয়োজন কারণ তাদের ডোমেন এবং দর্শন মডেলগুলি POJOS নয় এবং পরিবর্তে সরাসরি কাঠামোর সাথে আবদ্ধ।
সবচেয়ে উল্লেখযোগ্যভাবে, EJB 3 স্ট্যান্ডার্ডের পূর্বে J2EE তে সত্তা বিনগুলি POJOs ছিল না এবং এর পরিবর্তে অ্যাপ সার্ভার দ্বারা নির্মিত প্রক্সি অবজেক্ট ছিল - তাদের ক্লায়েন্টের কাছে প্রেরণ করা সহজ ছিল না, তাই আলাদা ডিটিও স্তর হেইং করার বিষয়ে আপনার কোনও পছন্দ ছিল না so - এটা বাধ্যতামূলক ছিল।
যদিও ডিটিও কোনও পুরানো প্যাটার্ন নয়, এটি প্রায়শই অকারণে প্রয়োগ করা হয়, এটি এটি পুরানো প্রদর্শিত হতে পারে।
জাভা এন্টারপ্রাইজ সম্প্রদায়ের সর্বাধিক অপব্যবহৃত প্যাটার্ন হ'ল ডিটিও। ডিটিও পরিষ্কারভাবে একটি বিতরণ সমস্যার সমাধান হিসাবে সংজ্ঞায়িত করা হয়েছিল। ডিটিও বলতে বোঝায় একটি মোটা দানাযুক্ত ডেটা ধারক যা প্রসেসের (স্তরের) মধ্যে দক্ষতার সাথে ডেটা পরিবহন করে। ~ অ্যাডাম বিয়েন
উদাহরণস্বরূপ, বলুন যে আপনার কাছে একটি জেএসএফ পরিচালিতবিয়ান রয়েছে। একটি সাধারণ প্রশ্ন হ'ল শিমটি সরাসরি জেপিএ সত্তার কোনও রেফারেন্স রাখা উচিত, বা এটি কোনও মধ্যস্থতাকারী অবজেক্টের রেফারেন্স বজায় রাখা উচিত যা পরবর্তীতে সত্তায় রূপান্তরিত হয়। আমি এই মধ্যস্থতাকারী অবজেক্টটি ডিটিও হিসাবে উল্লেখ করেছি শুনেছি, তবে যদি আপনার ম্যানেজডবিয়ানস এবং সত্ত্বাগুলি একই জেভিএমের মধ্যে কাজ করে থাকে তবে ডিটিও প্যাটার্নটি ব্যবহার করার সুবিধা নেই benefit
বিনের বৈধকরণ টীকা বিবেচনা করুন। আপনার জেপিএ সত্তাগুলি সম্ভবত @ নটনুল এবং @ সাইজের বৈধতাগুলির সাথে টিকা দেওয়া আছে। আপনি যদি ডিটিও ব্যবহার করে থাকেন তবে আপনি আপনার ডিটিওতে এই বৈধতাগুলি পুনরাবৃত্তি করতে চাইবেন যাতে আপনার দূরবর্তী ইন্টারফেসটি ব্যবহার করে ক্লায়েন্টদের মৌলিক বৈধতা ব্যর্থ হয়েছে তা খুঁজে পেতে কোনও বার্তা প্রেরণের প্রয়োজন না হয়। আপনার ডিটিও এবং সত্তার মধ্যে শিম বৈধকরণ টীকাগুলি অনুলিপি করার সমস্ত অতিরিক্ত কাজটি কল্পনা করুন, তবে যদি আপনার ভিউ এবং সত্ত্বাগুলি একই জেভিএমের মধ্যে কাজ করে তবে এই অতিরিক্ত কাজটি করার দরকার নেই: কেবল সত্তা ব্যবহার করুন।
আইএএমডিউডের লিঙ্কটি অব ক্যাটালগ অফ প্যাটার্নস অফ এন্টারপ্রাইজ অ্যাপ্লিকেশন আর্কিটেকচারের সাথে ডিটিওগুলির সংক্ষিপ্ত ব্যাখ্যা সরবরাহ করা হয় এবং এখানে আরও উল্লেখ রয়েছে যা আমি আলোকিত করে দেখলাম:
একেবারে না! আপনি সম্প্রতি যে ব্যবসায়িক অবজেক্টটি ব্যবহার করছেন (সম্ভবত আপনার ওআরএম ম্যাপারের সাথে আবদ্ধ) তার চেয়ে ডিটিও ব্যবহারের বিষয়ে আরও শিখেছি মাত্র ।
যাইহোক, কেবলমাত্র সেগুলি ব্যবহারের জন্য উপযুক্ত নয় এবং কেবল তাদের ব্যবহারের জন্য নয় কারণ সেগুলি কিছু ভাল প্যাটার্ন বইয়ে উল্লেখ করা হয়েছে use
একটি সাধারণ উদাহরণ যা কেবল আমার মনে আসে যখন আপনি তৃতীয় পক্ষগুলিতে কোনও ধরণের ইন্টারফেস প্রকাশ করেন। এই জাতীয় দৃশ্যে আপনি এক্সচেঞ্জ হওয়া অবজেক্টগুলিকে বেশ স্থিতিশীল রাখতে চান যা আপনি সাধারণত ডিটিও দিয়ে সুন্দরভাবে অর্জন করতে পারেন।
ডিটিওগুলিকে বিশেষভাবে দরকারী বলে মনে করে এমন একটি জায়গা এপিআই প্রতিক্রিয়াগুলির জন্য যুক্তিযুক্ত। এই প্যাটার্নটির সাহায্যে পরীক্ষামূলক পদ্ধতিতে অবজেক্ট থেকে বিভিন্ন ফর্ম্যাটে বিভিন্ন ধরণের প্রতিক্রিয়া পরিচালনা করা সহজ। আমার বর্তমান ভূমিকাতে এই প্যাটার্নটি ব্যবহার করে আমরা আমাদের এপিআইগুলির প্রতিক্রিয়া ফর্ম্যাটগুলি পরীক্ষা করতে সক্ষম হয়েছি যা মূল্যবান হয়ে গেছে যেহেতু আমাদের স্ট্যাকটি বিভিন্ন ক্লায়েন্টের (এইচটিপি / মোবাইল) সাথে আরও আইসর্মোরিক হয়ে উঠছে। অবশ্যই পুরানো নয়।