জাভা 8-এ, ইন্টারফেসগুলি বাস্তবায়িত পদ্ধতি, স্থিতিশীল পদ্ধতি এবং তথাকথিত "ডিফল্ট" পদ্ধতিগুলি (যা প্রয়োগকারী শ্রেণিগুলিকে ওভাররাইড করার প্রয়োজন হয় না) ধারণ করতে পারে।
আমার (সম্ভবত নিষ্পাপ) দৃষ্টিতে, এই জাতীয় ইন্টারফেস লঙ্ঘনের দরকার ছিল না। ইন্টারফেসগুলি সর্বদা এমন একটি চুক্তি হয়ে থাকে যা আপনাকে অবশ্যই পূরণ করতে হবে এবং এটি একটি খুব সহজ এবং খাঁটি ধারণা। এখন এটি বেশ কয়েকটি জিনিসের মিশ্রণ। আমার মতে:
- স্থির পদ্ধতি ইন্টারফেসের সাথে সম্পর্কিত নয়। তারা ইউটিলিটি ক্লাসের অন্তর্গত।
- ইন্টারফেসে "ডিফল্ট" পদ্ধতিগুলির অনুমতি দেওয়া উচিত ছিল না। আপনি এই উদ্দেশ্যে সর্বদা একটি বিমূর্ত শ্রেণি ব্যবহার করতে পারেন।
সংক্ষেপে:
জাভা 8 এর আগে:
- স্ট্যাটিক এবং ডিফল্ট পদ্ধতি সরবরাহের জন্য আপনি বিমূর্ত এবং নিয়মিত ক্লাস ব্যবহার করতে পারেন। ইন্টারফেসের ভূমিকা পরিষ্কার।
- একটি ইন্টারফেসের সমস্ত পদ্ধতি ক্লাস প্রয়োগ করে ওভাররাইড করা উচিত।
- সমস্ত বাস্তবায়ন সংশোধন না করে আপনি কোনও ইন্টারফেসে একটি নতুন পদ্ধতি যুক্ত করতে পারবেন না, তবে এটি আসলে একটি ভাল জিনিস।
জাভা 8 পরে:
- একটি ইন্টারফেস এবং একটি বিমূর্ত শ্রেণীর (একাধিক উত্তরাধিকার ব্যতীত) মধ্যে কার্যত কোনও পার্থক্য নেই। আসলে আপনি একটি ইন্টারফেস দিয়ে একটি নিয়মিত ক্লাস অনুকরণ করতে পারেন।
- বাস্তবায়নগুলি প্রোগ্রামিং করার সময় প্রোগ্রামাররা ডিফল্ট পদ্ধতিগুলিকে ওভাররাইড করতে ভুলে যেতে পারে।
- একটি শ্রেণি একই স্বাক্ষর সহ একটি ডিফল্ট পদ্ধতিযুক্ত দুটি বা আরও বেশি ইন্টারফেস প্রয়োগ করার চেষ্টা করে তবে একটি সংকলন ত্রুটি রয়েছে।
- একটি ইন্টারফেসে একটি ডিফল্ট পদ্ধতি যুক্ত করে প্রতিটি প্রয়োগকারী শ্রেণি স্বয়ংক্রিয়ভাবে এই আচরণের উত্তরাধিকার সূত্রে প্রাপ্ত হয়। এই ক্লাসগুলির কয়েকটি হয়ত সেই নতুন কার্যকারিতাটি মাথায় রেখে তৈরি করা হয়নি এবং এটি সমস্যার কারণ হতে পারে। উদাহরণস্বরূপ, যদি কেউ কোনও
default void foo()
ইন্টারফেসে একটি নতুন ডিফল্ট পদ্ধতি যুক্ত করেIx
, তবে শ্রেণিটি একই স্বাক্ষর সহ একটি ব্যক্তিগত পদ্ধতিCx
প্রয়োগ করেIx
এবংfoo
সংকলন করে না।
এই ধরনের বড় পরিবর্তনের মূল কারণগুলি কী এবং তারা কোন নতুন সুবিধা (যদি থাকে) যোগ করে?
@Deprecated
বিভাগে অন্তর্ভুক্ত! অজ্ঞতা এবং অলসতার কারণে স্থির পদ্ধতি জাভাতে সর্বাধিক আপত্তিজনক নির্মাণ const প্রচুর স্থিতিশীল পদ্ধতিগুলির অর্থ সাধারণত অযোগ্য প্রোগ্রামার মানে, একাধিক মাত্রার ক্রম সংযোজন বৃদ্ধি এবং ইউনিট পরীক্ষা এবং রিফ্যাক্টরের একটি দুঃস্বপ্ন যখন আপনি বুঝতে পারেন যে তারা কেন খারাপ ধারণা!