সমস্ত ভাল উত্তর এখানে। আমি ইন্টারফেসে স্থির ফাংশনটির আরেকটি ব্যবহারিক ব্যবহার যুক্ত করতে চাই। টিপটি বইটি থেকে আসছে - ইফেক্টিভ জাভা, অধ্যায় 2-এ জোশুয়া ব্লচের রচিত তৃতীয় সংস্করণ: অবজেক্টটি তৈরি করা এবং ধ্বংস করা।
Static functions can be used for static factory methods.
স্ট্যাটিক ফ্যাক্টরি পদ্ধতি এমন একটি পদ্ধতি যা কোনও বস্তু ফেরত দেয়। তারা কনস্ট্রাক্টরের মতো কাজ করে। নির্দিষ্ট ক্ষেত্রে স্ট্যাটিক ফ্যাক্টরি পদ্ধতিটি কনস্ট্রাক্টর ব্যবহারের চেয়ে বেশি পঠনযোগ্য কোড সরবরাহ করে।
বইটি থেকে উদ্ধৃত করা - জোশুয়া ব্লচের রচনা কার্যকর জাভা, তৃতীয় সংস্করণ
জাভা 8 এর আগে, ইন্টারফেসের স্থির পদ্ধতি থাকতে পারে না। কনভেনশন অনুসারে, টাইপ নামের একটি ইন্টারফেসের স্থিতিশীল কারখানার পদ্ধতিগুলি টাইপগুলির নামহীন সঙ্গী শ্রেণিতে (আইটেম 4) রাখা হয়েছিল।
লেখক সংগ্রহের উদাহরণ দেয় যেখানে এই জাতীয় স্থিতিশীল কারখানা পদ্ধতি প্রয়োগ করা হয়। কোডটি পরীক্ষা করা হচ্ছে, জোশ ব্লচকে সংগ্রহের ক্লাসের প্রথম লেখক হিসাবে দেখা যেতে পারে। যদিও সংগ্রহগুলি একটি শ্রেণি এবং ইন্টারফেস নয়। কিন্তু ধারণাটি এখনও প্রযোজ্য।
উদাহরণস্বরূপ, জাভা কালেকশন ফ্রেমওয়ার্কের তার ইন্টারফেসগুলির পঁচাতালটি ইউটিলিটি বাস্তবায়ন রয়েছে, যা অপরিবর্তনীয়যোগ্য সংগ্রহগুলি, সিঙ্ক্রোনাইজড সংগ্রহগুলি এবং এই জাতীয় পছন্দ সরবরাহ করে। এগুলির প্রায় সমস্ত বাস্তবায়ন স্থায়ী ফ্যাক্টরি পদ্ধতির মাধ্যমে একটি অবিচ্ছিন্ন শ্রেণিতে (java.util. সংগ্রহ) রফতানি করা হয়। প্রত্যাবর্তিত অবজেক্টের ক্লাসগুলি সমস্ত অ-প্রজাতন্ত্র।
আরও তিনি ব্যাখ্যা করেছেন যে এপিআই কেবল ছোট নয়, এটি কোড পঠনযোগ্যতা এবং এপিআই স্বাচ্ছন্দ্যে সহায়তা করে ..
এটি কেবলমাত্র এপিআই-এর বেশিরভাগ অংশই হ্রাস পায় না বরং ধারণাগত ওজন: এপিআইটি ব্যবহারের জন্য প্রোগ্রামারদের অবশ্যই যে ধারণাগুলি অর্জন করতে হবে তার সংখ্যা এবং অসুবিধা। প্রোগ্রামার জানে যে প্রত্যাবর্তিত অবজেক্টটি তার ইন্টারফেস দ্বারা নির্দিষ্টভাবে নির্দিষ্ট এপিআই রয়েছে, তাই বাস্তবায়ন শ্রেণীর জন্য অতিরিক্ত শ্রেণির ডকুমেন্টেশন পড়ার দরকার নেই।
এখানে java.util. সংগ্রহ সংগ্রহ শ্রেণীর স্থিতির একটি পদ্ধতি:
public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c) {
return new UnmodifiableCollection<>(c);
}