সহায়ক এবং ইউটিলিটি ক্লাসের মধ্যে পার্থক্য কী?


115

ক্লাস এক্সহেল্পার বা এক্স ইউটিলস কীভাবে কল করবেন তা নির্ধারণ করবেন?

আমার মনে :

সহায়ক শ্রেণি , এমন একটি শ্রেণী যা তাত্ক্ষণিকভাবে কাজ করতে পারে এবং কিছু ব্যবসায়িক কাজ করতে পারে

ইউটিলেটস ক্লাস , একটি স্ট্যাটিক ক্লাস যা এক ধরণের উদাহরণে ছোট এবং পুনরাবৃত্তিমূলক ক্রিয়াকলাপ সম্পাদন করে (অ্যাপ্লিকেশন শ্রেণীর অ্যারেইটিলস বা আইওউটিস অ্যাপাচি থেকে উদাহরণস্বরূপ)


5
"ব্যবসায়িক কাজ" এখানে মূল পার্থক্য। আমি Utilsস্থির শ্রেণীর জন্য ব্যবহার করা একটি দরকারী সম্মেলন বলে মনে করি যা সংস্থা বা অন্য কোনও সংস্থায় যে কোনও জায়গায় ব্যবহার করা যেতে পারে। একটি Helperশ্রেণীর সাধারণ কোড থাকে যা একটি প্রকল্পের মধ্যে পুনরায় ব্যবহার করা যায় এবং প্রকল্পের মধ্যে নির্ভরতা থাকে। অবশ্যই, সাধারণত কোনও গ্রহণযোগ্য নিয়ম নেই, তবে আমি এটি দরকারী বলে মনে করি।
স্টিফেন হোস্টিং

1
@ স্টেফেনহোসিং আপনার ব্যাখ্যাটি আমার এবং সম্ভবত সকলের কাছে সবচেয়ে অনুপ্রেরণাকারী। সম্ভব হলে আপনি কেবল বাম মন্তব্য না দিয়ে এই পোস্টটির প্রকৃত উত্তর হিসাবে আপনার ব্যাখ্যা পোস্ট করবেন।
বিগায়ের

@Bigair। থানকিউ, তবে আমার একটি পরামর্শ, উত্তর নয়। মানুষ আনন্দিত হয়েছে বলে আমি আনন্দিত।
স্টিফেন হোসিং 23

উত্তর:


101

ব্যবহারের জন্য অনেক নামকরণ শৈলী রয়েছে। আমি ইউটিসগুলি কেবলমাত্র এটির বেশি সাধারণ কারণেই পরামর্শ দেব।

একটি ইউটিলিটি ক্লাসটি কেবল স্থির পদ্ধতি এবং স্টেটলেস থাকতে বোঝা যায়। আপনি এই জাতীয় শ্রেণীর উদাহরণ তৈরি করবেন না।

একটি সহায়ক একটি ইউটিলিটি শ্রেণি হতে পারে বা এটি রাষ্ট্রীয় হতে পারে বা একটি উদাহরণ তৈরি করা প্রয়োজন। আমি যদি সম্ভব হয় তা এড়াতে চাই।

আপনি যদি নামটি আরও নির্দিষ্ট করে তুলতে পারেন। উদাহরণস্বরূপ, যদি এটি বাছাই করার পদ্ধতিগুলি থাকে তবে এটিকে XSorter করুন

অ্যারেগুলির জন্য আপনি সহায়ক সহায়ক শ্রেণিগুলি খুঁজে পেতে পারেন

Array
Arrays
ArrayUtil
ArrayUtils
ArrayHelper

ইউটিলিটি ক্লাসের জন্য সংক্ষিপ্ত হাত বিটিডাব্লু হ'ল একটি এনাম যার কোনও দৃষ্টান্ত নেই

enum XUtils {;
    static methods here
}

আপনার যদি কোনও ইন্টারফেস বাস্তবায়নের প্রয়োজন হয় তবে আমি স্টেটলেস সিঙ্গলটন ব্যবহার করব।

enum XHelper implements RequiredInterface {
   INSTANCE;
   // no instance fields.
}

এই পোস্টে আমি এই stackoverflow.com/a/2135797/787698 , যে Xutils কোন নির্ভরতা সঙ্গে একটি স্ট্যাটিক বর্গ। তুমি কী ভাবছ?
জাককম

@ জাকক্যাম আকর্ষণীয় পয়েন্ট। একটি সহায়ক রাষ্ট্রীয় হতে পারে এবং একটি উদাহরণ প্রয়োজন। সম্ভব হলে আমি স্টেটহীন এবং উদাহরণস্বরূপ কম ইউটিলিটি ক্লাস ব্যবহার করব।
পিটার লরি

জুটিলসের দ্বারা আপনি কী বোঝেন যে কোনও নির্ভরতা ছাড়াই স্থির শ্রেণি ?
জাককম

আমি এই পোস্টে "xutils" বা "কোন নির্ভরতা" খুঁজে পাচ্ছি না।
পিটার লরি

1
@ জন সেই ক্ষেত্রে একটি ইউটিলিটি পদ্ধতি পছন্দনীয় নয় কারণ পরীক্ষার উদ্দেশ্যে এটি উপহাস করা আরও কঠিন।
পিটার লরি

16

সাধারণভাবে? এটি সম্পূর্ণ নির্বিচারে। এটির জন্য কোনও নিয়ম নেই।


8

একটি ইউটিলিটি হ'ল "লিফ নোড" সাধারণ ব্যবহারের শ্রেণি। এটি হ'ল এটির আপনার প্রকল্পের কোনও নির্ভরতা নেই এবং প্রজেক্ট থেকে প্রকল্পে ভাঙ্গা বা অকেজো হয়ে যাওয়া ছাড়া পোর্ট করা যেতে পারে। উদাহরণ: Vector3, RandomNumberGenerator, StringMatcher, ইত্যাদি ...

একজন "সহায়ক" এমন কোনও বর্গ বলে মনে হয় যার নকশা অন্য শ্রেণিকে সহায়তা করা। এগুলি আপনার প্রকল্পের উপর নির্ভর করতে পারে বা নাও পারে। আপনি যদি একটি GameNetworkClientক্লাস তৈরি করে থাকেন তবে আপনি বলতে পারেন যে GameNetworkConnectionক্লাসটি একটি 'সহায়ক', কারণ এটি "সহায়তা" করে GameNetworkClient

বিকাশকারীরা যেভাবে সরঞ্জামগুলি উল্লেখ করেন সেগুলি এই শব্দের সাধারণ ব্যবহারকে প্রতিফলিত করে। যদি আপনি "সহায়ক" বনাম "দরকারী" হিসাবে বর্ণিত শ্রবণ সরঞ্জামগুলি স্মরণ করতে পারেন তবে সহায়ক সরঞ্জামটির কিছু প্রসঙ্গ থাকতে পারে (পনির গ্রাটার পনির গ্রেট করতে সহায়তা করে, কর্ন স্ট্রিপার কর্ন ফেলাতে সহায়তা করে, স্পিড লোডার আগ্নেয়াস্ত্র পুনরায় লোড করতে সহায়তা করে)। একটি "ইউটিলিটি" বিভিন্ন প্রসঙ্গে (WD-40, নালী টেপ, সেনা-ছুরি, আঠালো, টর্চলাইট, ইত্যাদি ...) কাজ করবে বলে আশা করা হচ্ছে।


4

জেস্পার যেমন বলেছিলেন, এটি সম্পূর্ণ স্বেচ্ছাচারী । আপনার সংস্থার পক্ষে কী কাজ করে তা আপনি ভাবতে পারেন এবং কনভেনশনটি তৈরি করতে পারেন।

আমার জন্য এটি এমন কিছু:

ইউটিস - স্ট্যাটিক ক্লাস, যা অবাধে স্থানান্তরিত এবং যে কোনও জায়গায় আমদানি করা যায়।

বিভিন্ন মডিউলে কার্যকর হতে পারে এমন সাধারণ কাজগুলি করা। পিটার লরি যেমন বলেছিলেন, আরও নির্দিষ্ট নাম কার্যকর।

সাহায্যকারী - ক্লাস সাহায্য আরেকটি শ্রেণী বা একটি মডিউল।

এটি রাখা মডিউলটিতে কেবলমাত্র ব্যবহৃত টাস্কগুলি অন্য কোথাও আমদানি করা বোঝায় না। সুতরাং নামটি আরও নির্দিষ্ট হতে পারে - মডিউলনেম সহায়ক (যেমন অ্যাডমিনিস্ট্রেশন হেল্পার , লগইনহেলপার )


2

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

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

আমি "বহুবচন" নামকরণের স্কিমটিও পছন্দ করি যা আপনি জেডিকে এবং পেয়ারা উভয়তেই পাবেন :

যদি কোনও শ্রেণি Collectionঅবজেক্টগুলির সাথে ডিল করে তবে তাকে বলা হয়Collections

অ্যারে> অ্যারে (jdk)
তালিকা> তালিকা (পেয়ারা)
মানচিত্র> মানচিত্র (পেয়ারা)

প্রভৃতি

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