কম্পিউটার

কখন একটি বিমূর্ত ক্লাস ব্যবহার করবেন এবং কখন জাভাতে একটি ইন্টারফেস ব্যবহার করবেন?


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

কখন একটি বিমূর্ত ক্লাস ব্যবহার করবেন

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

উদাহরণ

বিমূর্ত ক্লাস কার { পাবলিক void accelerate() { System.out.println("ত্বরণ করার জন্য কিছু করুন"); } public void applyBrakes() { System.out.println("ব্রেক প্রয়োগ করার জন্য কিছু করুন"); } সর্বজনীন বিমূর্ত void changeGears();}

এখন, যে কোনো গাড়িকে তাৎক্ষণিকভাবে পরিবর্তন করতে হবে () পরিবর্তন করতে হবে।

<প্রি>ক্লাস অল্টো কারকে প্রসারিত করে { পাবলিক ভ্যাড চেঞ্জ গিয়ারস() { System.out.println("অল্টো গাড়ির জন্য চেঞ্জ গিয়ারস() পদ্ধতি প্রয়োগ করুন"); }}ক্লাস স্যান্ট্রো কারকে প্রসারিত করে { পাবলিক ভ্যাড চেঞ্জ গিয়ারস() { System.out.println("Santro গাড়ির জন্য changeGears() পদ্ধতি প্রয়োগ করুন"); }}

কখন একটি ইন্টারফেস ব্যবহার করতে হবে

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

উদাহরণ

পাবলিক ইন্টারফেস অভিনেতা { void performance();}পাবলিক ইন্টারফেস প্রযোজক { void invest();}

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

পাবলিক ইন্টারফেস অভিনেতা প্রযোজক অভিনেতা, প্রযোজককে প্রসারিত করে{// কিছু বিবৃতি

  1. আমরা কখন জাভাতে getClass() পদ্ধতি ব্যবহার করতে পারি?

  2. বিমূর্ত শ্রেণী এবং ইন্টারফেসের মধ্যে পার্থক্য

  3. জাভাতে ইন্টারফেস

  4. জাভাতে বিমূর্ত ক্লাস