সরল পুরাতন সিএলআর অবজেক্ট বনাম ডেটা স্থানান্তর অবজেক্ট


405

পোকো = সাধারণ পুরানো সিএলআর (বা আরও ভাল: শ্রেণি) অবজেক্ট

ডিটিও = ডেটা স্থানান্তর অবজেক্ট

এই পোস্টে একটি পার্থক্য রয়েছে, তবে প্রকৃতপক্ষে আমি যে ব্লগগুলি পড়েছি তার বেশিরভাগই পোকোকে ডিটিওকে সংজ্ঞায়িত করার পদ্ধতিতে বর্ণনা করে: ডিটিওগুলি একটি অ্যাপ্লিকেশন স্তরগুলির মধ্যে ডেটা সরিয়ে রাখার জন্য ব্যবহৃত সাধারণ ডাটা পাত্রে।

পোকো এবং ডিটিও কি একই জিনিস?


5
"পোকো = সাধারণ পুরানো সিএলআর (বা আরও ভাল: শ্রেণি) অবজেক্ট"। সুতরাং, ভিবি.নেটে এই প্রকৃতির অবজেক্টগুলি পোকোও হবে, পিওওও নয়।
জে.পলফার

উত্তর:


568

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

একজন ডিটিওর একমাত্র উদ্দেশ্য রাষ্ট্র স্থানান্তর করা এবং এর কোনও আচরণ করা উচিত নয়। এই প্যাটার্নটি ব্যবহারের উদাহরণের জন্য মার্টিন ফোলারের একটি ডিটিওর ব্যাখ্যা দেখুন ।

পার্থক্যটি এখানে: পোকো প্রোগ্রামিংয়ের একটি পদ্ধতির বর্ণনা দেয় (ভাল পুরানো ফ্যাশনযুক্ত অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং), যেখানে ডিটিও এমন একটি প্যাটার্ন যা অবজেক্টগুলি ব্যবহার করে "ডেটা ট্রান্সফার" করতে ব্যবহৃত হয়।

আপনি ডিটিওগুলির মতো পোকোকে চিকিত্সা করতে পারবেন, আপনি যদি এটি করেন তবে রক্তাল্পতাযুক্ত ডোমেন মডেল তৈরির ঝুঁকিটি চালান । অতিরিক্তভাবে, কাঠামোর একটি মিল নেই, যেহেতু ডিটিওগুলি ডেটা স্থানান্তর করার জন্য ডিজাইন করা উচিত, ব্যবসায়ের ডোমেনের প্রকৃত কাঠামোর প্রতিনিধিত্ব করতে নয়। এর ফলাফলটি হ'ল ডিটিওগুলি আপনার প্রকৃত ডোমেনের চেয়ে বেশি সমতল হতে থাকে।

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


আমি জানি আমি এখানে মার্টিন ফাউলারের অনেক উল্লেখ করেছি, কিন্তু তিনি POJO শব্দটি তৈরি করেছিলেন, এবং PoEAA বইটি লিখেছিলেন যা ডিটিওর জন্য চূড়ান্ত রেফারেন্স।
মাইকেল Meadows

আমি নিশ্চিত না যে কোনও ডিটিওর আচরণ না করা উচিত Mart মার্টিন ফওলারের ডায়াগ্রামের বিচারে, ডিটিওর আচরণ থাকতে পারে।
বিটলস 1692 21

39
@ বিটলস ১69৯২, চিত্রিত পদ্ধতিগুলি হ'ল সিরিয়ালাইজেশন কোড। "কোনও আচরণ নয়" বলতে এটি সম্ভবত একটি বিবৃতিতে খুব বিস্তৃত। কীভাবে "কোনও ব্যবসার যুক্তি নেই"। সিরিয়ালাইজেশন কোড এবং নিম্ন স্তরের অবজেক্ট স্টাফের মতো হ্যাশ কোড, সমতা এবং টস্ট্রিং গ্রহণযোগ্য হবে।
মাইকেল Meadows

1
@ পজিটিভগুই একটি মডেল একটি ডিটিও থেকে আলাদা উদ্দেশ্যে কাজ করে। ডিটিও হ'ল এক ডোমেন থেকে অন্য ডোমেনে ডেটা স্থানান্তর করার জন্য (তারা একই রানটাইমে অপ্রাসঙ্গিক কিনা তা নয়)। কোনও মডেল কোনও স্ক্রিন, পরিষেবা বা ডেটা উত্সের মতো কোনও ডোমেনের একটি দিক "উপস্থাপন" করে। মডেলগুলির মধ্যে রাষ্ট্র এবং আচরণ অন্তর্ভুক্ত থাকে, যা তারা মডেলিংয়ের প্রতিনিধিত্ব করে।
মাইকেল Meadows

2
দয়া করে নোট করুন যে রক্তাল্পতাযুক্ত ডোমেন মডেলগুলি অগত্যা খারাপ হয় না, বিশেষত যদি আপনার অ্যাপ্লিকেশন বেশিরভাগ CRUD থাকে। মার্টিন ফোলারের চেয়ে সরলতার পক্ষে
মারিউজ জামরো

50

আমি ইতিমধ্যে আমার ব্লগ নিবন্ধে আমার অবস্থানটি বর্ণনা করার পরে অবদানের পক্ষে আমার পক্ষে অতিরিক্ত কাজ হবে, তবে সেই নিবন্ধের চূড়ান্ত অনুচ্ছেদে বিষয়গুলি যোগ করতে হবে:

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

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


4
ব্লগ নিবন্ধের লিঙ্ক: rlacovara.blogspot.com/2009/03/…
জ্যামি

28

পোকো হ'ল এমন একটি বস্তু যা বাহ্যিক কাঠামোর উপর নির্ভরতা নেয় না। এটা প্লেন।

কোনও পোকোর আচরণ আছে কি না তা তা নিরবচ্ছিন্ন।

একটি ডিটিও একটি ডোমেন অবজেক্ট হিসাবে পোকো হতে পারে (যা সাধারণত আচরণে সমৃদ্ধ হবে)।

সাধারণত ডিটিওগুলি সিরিয়ালাইজেশন উদ্দেশ্যে বহিরাগত ফ্রেমওয়ার্কের উপর নির্ভরশীলতা গ্রহণের সম্ভাবনা বেশি থাকে (যেমন: বৈশিষ্ট্যগুলি) সাধারণত তারা কোনও সিস্টেমের সীমানায় প্রস্থান করে।

সাধারণ পেঁয়াজ স্টাইলের আর্কিটেকচারে (প্রায়শই বিস্তৃতভাবে DDD পদ্ধতির অভ্যন্তরে ব্যবহৃত হয়) ডোমেন স্তরটি কেন্দ্রে স্থাপন করা হয় এবং সুতরাং এর বস্তুর, এই স্তরের বাইরে নির্ভরতা থাকা উচিত নয়।



6

আমি মনে করি একটি ডিটিও পোকো হতে পারে। ডিটিও হ'ল অবজেক্টের ব্যবহার সম্পর্কে এবং পোকো বস্তুর শৈলীর চেয়ে বেশি (আর্কিটেকচারাল ধারণাগুলি থেকে প্রত্যাশিত)।

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

আপডেট মার্টিন ফোলার বলেছিলেন যে এই পদ্ধতিরটি নেওয়া ভারী রাস্তা এবং কেবলমাত্র যদি ডোমেন স্তর এবং ব্যবহারকারীর ইন্টারফেসের মধ্যে উল্লেখযোগ্য অমিল থাকে তবে তা নেওয়া উচিত।


2
@ ডেভিড ল্যান্ডম্যান, আপনার অন্তর্ভুক্ত লিঙ্কটি স্থানীয় ডিটিও প্যাটার্নের জন্য যা ডিটিওগুলি আপনার সিস্টেমের সীমানার মধ্যে স্থানান্তর অবস্থার জন্য ব্যবহৃত হয়। এই ক্ষেত্রে আপনার খুব সাবধান হওয়া উচিত, কারণ আপনার সিস্টেমের মধ্যে আপনার ইতিমধ্যে একটি ভাল সংজ্ঞায়িত ডোমেন থাকা উচিত যা ভাগ করা যায়। সিস্টেমের সীমানা জুড়ে রাষ্ট্র স্থানান্তর করার সময়, ডিটিও সব ক্ষেত্রে এড়ানো সহজ এবং বেশ উপযুক্ত।
মাইকেল মিডোস

@ মিচাল মিডোস, হ্যাঁ, লিঙ্কটি আসলেই সমস্যার বিভিন্ন উপসেট সম্পর্কে কথা বলেছে। তবে আমি মনে করি একটি সিস্টেমের সীমানা পেরিয়ে রাষ্ট্র স্থানান্তর করার ক্ষেত্রে আপনার কোনও প্রসঙ্গ থেকে অন্য প্রসঙ্গে পোকোর কাছে পোকো মানচিত্র করতে অনুবাদ পরিষেবা ব্যবহার করা উচিত। বা আপনি কি সিস্টেম স্তরে সীমানা সম্পর্কে কথা বলছেন?
ডেভি ল্যান্ডম্যান

1

ডিটিওর জন্য প্রাথমিক ব্যবহারের কেস একটি ওয়েব পরিষেবা থেকে ডেটা ফেরত in এই উদাহরণে, পোকো এবং ডিটিও সমতুল্য। পোকোতে থাকা কোনও আচরণ ওয়েব ওয়েবসাইট থেকে ফিরে আসার পরে অপসারণ করা হবে, সুতরাং এর আচরণ আছে কি না তা আসলে ব্যাপার নয়।


5
আমি মনে করি আপনার উত্তরটি যা ঘটেছিল তা ভুল ব্যাখ্যা করে। একটি ওয়েব পরিষেবাদির ক্ষেত্রে, কোনও সামগ্রীর উন্মুক্ত অবস্থার ভিত্তিতে একটি প্রক্সি তৈরি করা হয়। এর অর্থ পিটিও থেকে আলাদা একটি ডিটিও তৈরি করা হয়েছে যা পোকোর মতোই সর্বজনীন রাষ্ট্র হিসাবে ঘটে। এটি সূক্ষ্ম বলে মনে হতে পারে তবে এটি গুরুত্বপূর্ণ। কারণটি হ'ল প্রক্সিটি মূলটির সাথে সাদৃশ্যপূর্ণ হলেও এটি প্রকৃতপক্ষে একই বর্গ থেকে তৈরি করা হয়নি।
মাইকেল Meadows

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

5
** শব্দার্থকভাবে: ওয়েব পরিষেবাগুলি ডাব্লুএসডিএল ব্যবহার করে অবজেক্ট স্টেট ব্যাগগুলি প্রকাশ করে। এগুলি থেকে প্রক্সি তৈরি করা হয়। এর মধ্যে আচরণ অন্তর্ভুক্ত থাকতে পারে না। যদি কোনও ওয়েব পরিষেবা গ্রাস করে থাকে তবে আপনার অবজেক্ট এবং এক্সপোজড ডোমেন অবজেক্টের মধ্যে একমাত্র সম্পর্ক হ'ল এটি পরিদর্শনের ভিত্তিতে তৈরি একই পাবলিক স্টেট।
মাইকেল Meadows

7
@ জন, আমি মনে করি আপনি অত্যধিক আচরণ করছেন আমি বলছি আপনি ঠিক বলেছেন, কিন্তু আপনার শব্দটি বিভ্রান্তিকর। "এই ক্ষেত্রে, পোকো এবং ডিটিও সমতুল্য।" শব্দার্থকভাবে, এটি সত্য নয়। পোকো ডিটিও এবং তদ্বিপরীত হিসাবে ব্যবহার করা যেতে পারে, তবে এর অর্থ এই নয় যে তারা সমতুল্য ... গাড়ি এবং পিকআপ ট্রাকের তুলনায় আর কোনওটি সমতুল্য নয়, যদিও এগুলি উভয়ই আপনাকে মুদি দোকানে চালাতে ব্যবহৃত হতে পারে। তাদের ওভারল্যাপিং ফাংশন রয়েছে, তবে মুদি ভ্রমণের প্রসঙ্গে এমনকি আপনার কাছে অন্তর্দৃষ্টি একটি F350 এর সমতুল্য বলে কেউ খুঁজে পেতে খুব চাপ দেওয়া হবে।
মাইকেল Meadows

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

1

এখানে সাধারণ নিয়মটি রয়েছে: ডিটিও == অশুভ এবং অতিরিক্ত ইঞ্জিনিয়ারড সফ্টওয়্যারটির সূচক। Poco == ভাল। 'এন্টারপ্রাইজ' নিদর্শন জাভা ইই বিশ্বের বহু লোকের মস্তিষ্ককে ধ্বংস করেছে। .NET জমিতে ভুলটির পুনরাবৃত্তি করবেন না।


7
আপনি দয়া করে বিস্তারিত বলতে পারেন? কোনও চুক্তি বাস্তবায়ন এবং প্ল্যাটফর্মের বিবরণ এড়াতে কোনও ওয়েব পরিষেবা থেকে ডেটা ফেরত দেওয়ার সময় ডিটিওর প্রয়োজন হয়।
জন স্যান্ডার্স 14

1
হ্যাঁ, জন ডিটিও আপনি যা বলছেন এবং ভালভাবে কাজ করেন তার জন্য ডিজাইন করা হয়েছে। তবে দুর্ভাগ্যক্রমে যখন তারা একক স্তরের ওয়েব অ্যাপ্লিকেশনগুলিতে প্রয়োজন হয় না এবং এর খুব কম মূল্য থাকে তখন প্রায়শই তারা ব্যবহার হয়।
ক্রেগ

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

0

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


0

টি এল; ডিআর:

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

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

একটি পোকো একটি সরল বস্তু, তবে 'প্লেইন' বলতে যা বোঝায় তা হ'ল এটি বিশেষ নয়। এর ঠিক অর্থ এটি কোনও সিএলআর অবজেক্ট যার সাথে এতে কোনও নিহিত প্যাটার্ন নেই। একটি সাধারণ শব্দ। এটি অন্য কোনও কাঠামোর সাথে কাজ করার জন্য তৈরি করা হয়নি। সুতরাং [JsonProperty]উদাহরণস্বরূপ, যদি আপনার পোকোর সমস্ত বৈশিষ্ট্য জুড়ে বা EF সজ্জা থাকে তবে আমি যুক্তি দেব যে এটি কোনও পোকো নয়।

বিভিন্ন ধরণের বস্তুর নিদর্শনগুলির তুলনা করার জন্য এখানে কয়েকটি উদাহরণ:

  • মডেল দেখুন : দেখার জন্য ডেটা মডেল করতে ব্যবহৃত। বাঁধাই এবং বৈধতা সহায়তা করার জন্য সাধারণত ডেটা টীকা থাকে। এমভিভিএম-তে এটি নিয়ামক হিসাবেও কাজ করে। এটি একটি ডিটিওর চেয়ে বেশি
  • মান অবজেক্ট : মান উপস্থাপন করতে ব্যবহৃত
  • সমষ্টিগত রুট : রাষ্ট্র এবং আক্রমণকারীদের পরিচালনা করতে ব্যবহৃত হয়
  • হ্যান্ডলারগুলি : একটি ইভেন্ট / বার্তায় প্রতিক্রিয়া জানাতে ব্যবহৃত হয়
  • বৈশিষ্ট্য : ক্রস কাটিয়া উদ্বেগ মোকাবেলায় সজ্জা হিসাবে ব্যবহৃত হয়
  • পরিষেবা : জটিল কাজ সম্পাদন করতে ব্যবহৃত
  • নিয়ামক : অনুরোধ এবং প্রতিক্রিয়াগুলির প্রবাহ নিয়ন্ত্রণ করতে ব্যবহৃত
  • কারখানা : কোন কনস্ট্রাক্টর যথেষ্ট ভাল না হলে ব্যবহারের জন্য জটিল বস্তুগুলি কনফিগার করতে এবং / অথবা একত্রিত করতে ব্যবহৃত হয়। রানটাইমে কোন জিনিস তৈরি করতে হবে তা সিদ্ধান্ত নিতেও ব্যবহৃত হত used
  • সংগ্রহস্থল / ডিএও : ডেটা অ্যাক্সেস করতে ব্যবহৃত

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

একটি পোকো কোনও প্যাটার্ন বর্ণনা করে না। এটি ওওপি-তে শ্রেণি / অবজেক্টের উল্লেখ করার এক অন্যরকম উপায়। এটি একটি বিমূর্ত ধারণা হিসাবে ভাবেন; তারা কিছু উল্লেখ করা যেতে পারে। আইএমও, একমুখী সম্পর্ক রয়েছে যদিও কোনও জিনিস যখন এমন এক জায়গায় পৌঁছে যায় যেখানে এটি কেবল একটি উদ্দেশ্যে পরিষ্কারভাবে পরিবেশন করতে পারে, এটি আর কোনও পোকো নয়। উদাহরণস্বরূপ, একবার আপনি যদি আপনার কাঠামোটি কোনও কাঠামোর সাথে কাজ করার জন্য সজ্জা দিয়ে চিহ্নিত করেন তবে এটি আর কোনও পোকো নয়। অতএব:

  • একটি ডিটিও একটি পোকো
  • একটি পোকো একটি ডিটিও নয়
  • একটি ভিউ মডেল একটি পোকো
  • একটি পোকো কোনও ভিউ মডেল নয়

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

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


-13

এমনকি তাদের ডিটিওও বলবেন না। তাদের বলা হয় মডেল .... পিরিয়ড। মডেলের কখনও আচরণ হয় না। আমি জানি না কে এই বোবা শব্দটি ডিটিও নিয়ে এসেছিল তবে এটি অবশ্যই একটি নেট নেট হতে হবে যা আমি বুঝতে পারি। এমভিসি, একই বাঁধ ** জিনিসটিতে মডেলগুলি দেখুন, মডেলগুলি স্তরগুলির সার্ভারের পাশে বা তারের সময়কালের মধ্যে স্থিতি স্থানান্তর করতে ব্যবহৃত হয়, সেগুলি সমস্ত মডেল। ডেটা সহ বৈশিষ্ট্য। এগুলি হল এমন মডেল যা আপনি তারের উপর দিয়ে যান। মডেল, মডেল মডেল। এটাই.

আমি আশা করি নির্বোধ শব্দটি ডিটিও আমাদের শব্দভাণ্ডার থেকে দূরে চলে যায়।


1
আমি জানি না আপনি এই ধারণাটি কোথায় পেয়েছেন যে মডেলগুলির কখনও আচরণ হয় না। মডেলিং আচরণ ছাড়া আপনি কীভাবে সিআরইউডি ব্যতীত অন্য কোনও কিছুকে মডেল করবেন? এমনকি ভিউমোডেলগুলির বেশিরভাগ ক্ষেত্রেই আচরণ করা হয়, বিশেষত এমভিভিএম অ্যাপ্লিকেশনগুলিতে। ডিটিও একটি দরকারী শব্দ, কারণ এটি সঠিকভাবে উদ্দেশ্য বর্ণনা করে; তথ্য স্থানান্তর করতে।
জেরাল্ড

9
প্রকৃতপক্ষে ভুল হওয়ার জন্য এবং পন্টিফাইটিং মনোভাবের জন্য নিম্নমানের।
joedotnot

ছাইপাঁশ. মডেলগুলি বোকা ধারক হওয়া উচিত। কোনও ডিটিও নেই, এটি একটি এমএস আপ টার্ম। আপনি ডোমেন, পরিষেবা এবং অ্যাপ্লিকেশনগুলির মধ্যে মডেলগুলি স্থানান্তর করেন। সময়কাল। ডিটিও হ'ল পদটির অপচয় যা প্রয়োজন হয় না এবং কেবল জিনিসগুলিকে আরও বিভ্রান্ত করে। মডেল, মডেল এবং আরও বেশি মডেল এটি। মডেলগুলির আচরণ থাকতে পারে বা নাও থাকতে পারে। মডেলগুলি দেখুন না। সেই আচরণটি একটি বিএল মধ্যে হওয়া উচিত, মডেল শ্রেণিতে নয়।
PositiveGuy

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

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