একটি পরিষেবা শ্রেণি এবং একটি সহায়ক শ্রেণীর মধ্যে পার্থক্য [বন্ধ]


60

আমি জানতে চাই কোন পরিষেবা শ্রেণিটি কোনও ইউটিলিটি ক্লাস বা সহায়ক শ্রেণীর চেয়ে আলাদা কী? কেবলমাত্র অন্তর্নিহিত পদ্ধতি সহ একটি শ্রেণি দাওকে একটি পরিষেবা বলে? সহায়ক ক্লাসগুলির ব্যবহার কি এসআরপি লঙ্ঘন করে না?

উত্তর:


73

লাইনগুলি কিছুটা ঝাপসা হতে পারে তবে আমি এটি এটিকে দেখছি:

  • একটি পরিষেবা শ্রেণি / ইন্টারফেস অ্যাপ্লিকেশনটিতে কিছু কার্যকারিতার সাথে ইন্টারঅ্যাক্ট করার জন্য একটি ক্লায়েন্টের একটি উপায় সরবরাহ করে। এটি সাধারণত ব্যবসায়িক অর্থ সহ সর্বজনীন। উদাহরণস্বরূপ, একটি TicketingServiceইন্টারফেস আপনাকে অনুমতি দিতে পারে buyTicket, sellTicketএবং আরও অনেক কিছু।

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

পরিষেবাগুলি ডিএওগুলির সাথে কেবল দৃly়ভাবে মিলিত হয় না, এটি দৃistence়তার চেয়ে বিস্তৃত শব্দ / ব্যবহারের ধরণ

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


24

কোনও বৈজ্ঞানিক সংজ্ঞা নয়, তবে আমার সাধারণ গ্রহণটি হ'ল একটি পরিষেবা শ্রেণীর প্রয়োগের মধ্যে কিছু প্রসঙ্গ রয়েছে যেখানে সাহায্যকারীরা বেশি সাধারণ এবং তারা কোন অ্যাপ্লিকেশনটিকে সহায়তা করছে তা যত্ন করে না।


15

আমার জন্য, আমি এরিক ইভান্স সংজ্ঞাটি দিয়েservice যাচ্ছি যার কিছুটা এইরকম:

সাধারণত, একটি ভাল নকশা করা সিস্টেমে, বেশিরভাগ শ্রেণীর (ডোমেন মডেলটিতে) বেশ স্পষ্টরূপে দায়িত্ব বা কার্য থাকে যা তারা নির্দিষ্ট মডেলটিতে সুনির্দিষ্ট সত্তা বা সত্ত্বার সেট নিয়ে কাজ করে।

অর্থাত

  • অ্যাকাউন্ট, অ্যাকাউন্ট কারখানা, অ্যাকাউন্ট সংগ্রহস্থল, ইত্যাদি
  • গ্রাহক, গ্রাহক কারখানা, গ্রাহক সংগ্রহশালা, ইত্যাদি

যখন আপনার কার্যকারিতা থাকে যা কোনও নির্দিষ্ট সত্তার সাথে সম্পর্কিত না হয় তখন এটি বসার জন্য সঠিক জায়গা খুঁজে পাওয়া কঠিন। অর্থাত এমন কোনও কিছু যা একটি প্রক্রিয়াকে আবদ্ধ করে যা একটি Accountএবং এবং উভয়ই জড়িত Customer

সুতরাং, সেখানেই serviceআসে। এটিই যেখানে আপনি এমন কোডটি রেখেছিলেন যা ডোমেন মডেলটিতে রয়েছে তবে স্বাভাবিকভাবেই কোনও সত্তা / উপাদান বা অন্যটির সাথে সম্পর্কিত নয়।

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


1
উপরে বর্ণিত এরিক ইভানের সংজ্ঞাটি একটি ডোমেন পরিষেবার জন্য বিশেষত is ডিডিডির ডোমেন পরিষেবা, অ্যাপ্লিকেশন পরিষেবা, অবকাঠামো পরিষেবা এবং এমনকী ভান্ডার রয়েছে যা ডেটা অ্যাক্সেস পরিষেবা হিসাবে দেখা হয়।
স্যাঙ্গো

12

পরিষেবা শ্রেণি: ব্যবসায় যুক্তিযুক্ত।
সহায়ক শ্রেণি: এই শ্রেণিটি পুনরায় ব্যবহারযোগ্য উপাদানগুলির এক প্রকার।


5

আপনি দুটি নন-সম্পর্কিত প্রিন্সিপালকে মিশ্রিত করেছেন। পরিষেবাদি এবং সাহায্যকারী-শ্রেণি সংযুক্ত নেই। বিশেষত "পরিষেবা শ্রেণি" শব্দটি বিভ্রান্তিমূলক - আমার মনে হয় আপনি এমন একটি "পরিষেবা" উল্লেখ করছেন যা ক্লাসের তুলনায় উচ্চ বিমূর্ততার স্তরে রয়েছে। একটি পরিষেবা মাধ্যমে বৈশিষ্ট্যযুক্ত

"এক বা একাধিক ক্ষমতার অ্যাক্সেস সক্ষম করার একটি ব্যবস্থা, যেখানে নির্ধারিত ইন্টারফেস ব্যবহার করে অ্যাক্সেস সরবরাহ করা হয় এবং পরিষেবা বর্ণনার দ্বারা বর্ণিত সীমাবদ্ধতা এবং নীতিগুলির সাথে সামঞ্জস্য করা হয়।"

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


4

সাবধান থাকার একটি বিষয় ডিডিডি-তে 'পরিষেবা' এর একাধিক সংজ্ঞা:

অ্যাপ্লিকেশন পরিষেবা: এগুলি অ্যাপ্লিকেশন স্তরে বসে ডোমেন এবং ডেটা স্তরের সাথে যোগাযোগ করে, এগুলি ইন্টারফেস যার মাধ্যমে বাহ্যিক সিস্টেম / ইউআই ডিডিডি সিস্টেমের সাথে যোগাযোগ করে।

ডোমেন পরিষেবা: এটি ডোমেন বা অ্যাপ্লিকেশন স্তর দ্বারা ব্যবহার করা যেতে পারে এবং ব্যবসায় যুক্তি থাকতে পারে যা একটি নির্দিষ্ট সত্তার সাথে ঝরঝরে ফিট করে না।

অবকাঠামো পরিষেবা: এগুলি ডোমেন দ্বারা বাহ্যিক সংস্থার সাথে যোগাযোগের জন্য ব্যবহৃত হয়।

সহায়ক শ্রেণীর কোডগুলি বা অ্যালগোরিদমের টুকরো রয়েছে যা একাধিক সত্তা পুনরায় ব্যবহার করতে পারে, তাই DRY নীতিটি লঙ্ঘন না করে সত্যই সত্তায় প্রবেশ করতে পারে না। তারা সম্ভবত ডোমেন পরিষেবাদির নিকটতম, যাতে তারা একই উদ্দেশ্য (সত্তাগুলি থেকে ব্যবসায়িক যুক্তিকে বহিরাগত করে তোলে) পূরণ করে তবে তারা এটি বিভিন্ন কারণে করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.