আমি "প্রয়োগের পরিবর্তে একটি ইন্টারফেসে প্রোগ্রামিং" শব্দটিটি অনেকটা পেরিয়ে এসেছি এবং আমি মনে করি এটির অর্থ কী তা আমি বুঝতে পারি। তবে আমি নিশ্চিত করতে চাই যে আমি এটির সুবিধাগুলি বুঝতে পেরেছি এবং এটি সম্ভব বাস্তবায়ন।
"একটি ইন্টারফেসে প্রোগ্রামিং" এর অর্থ, যখন সম্ভব হয় তখন একটি কংক্রিটের বাস্তবায়নের পরিবর্তে ক্লাসের একটি আরও বিমূর্ত স্তর (একটি ইন্টারফেস, অ্যাবস্ট্রাক্ট শ্রেণি বা কখনও কখনও একটি সুপারক্লাস) উল্লেখ করা উচিত।
জাভাতে একটি সাধারণ উদাহরণটি হ'ল:
List myList = new ArrayList();
পরিবর্তে ArrayList myList = new ArrayList();
।
এ সম্পর্কে আমার দুটি প্রশ্ন রয়েছে:
আমি নিশ্চিত করতে চাই যে আমি এই পদ্ধতির মূল সুবিধাটি বুঝি understand আমি মনে করি সুবিধাগুলি বেশিরভাগ নমনীয়তা। কোন বিষয়টিকে কংক্রিট বাস্তবায়ন না করে আরও উচ্চ-স্তরের রেফারেন্স হিসাবে ঘোষণা করা, বিকাশ চক্র এবং কোডজুড়ে আরও নমনীয়তা এবং বজায় রাখার মঞ্জুরি দেয়। এটা কি সঠিক? নমনীয়তা কি প্রধান উপকার?
'ইন্টারফেসে প্রোগ্রামিং' এর আরও কি উপায় আছে? বা "একটি কংক্রিট প্রয়োগের পরিবর্তে ইন্টারফেস হিসাবে পরিবর্তনশীল ঘোষণা করা" এই ধারণার একমাত্র বাস্তবায়ন?
আমি জাভা কনস্ট্রাক্ট ইন্টারফেসের কথা বলছি না । আমি ওও নীতিটি সম্পর্কে কথা বলছি "ইন্টারফেসে প্রোগ্রামিং, বাস্তবায়ন নয়"। এই নীতিতে, বিশ্বের "ইন্টারফেস" বলতে কোনও শ্রেণীর কোনও "সুপার টাইপ" বোঝায় - একটি ইন্টারফেস, একটি বিমূর্ত শ্রেণি, বা একটি সরল সুপারক্লাস যা এটি আরও কংক্রিটের সাবক্লাসগুলির চেয়ে আরও বিমূর্ত এবং কম কংক্রিট।