কী পার্থক্য - স্ট্যাটিক বাইন্ডিং বনাম ডাইনামিক বাইন্ডিং
প্রোগ্রামিং ভাষা যেমন জাভা এবং সি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) সমর্থন করে। এটি বস্তু ব্যবহার করে সফ্টওয়্যার নির্মাণের অনুমতি দেয়। একটি সফ্টওয়্যার সিস্টেম বা একটি প্রোগ্রামে অনেকগুলি বস্তু রয়েছে। এই বস্তুর বৈশিষ্ট্য এবং পদ্ধতি আছে. গুণাবলী বৈশিষ্ট্য বর্ণনা. পদ্ধতিগুলি বস্তু দ্বারা সঞ্চালিত হতে পারে এমন ক্রিয়াগুলি বর্ণনা করে। পদ্ধতি ব্যবহার করে বস্তুর মধ্য দিয়ে ডেটা পাঠানো হয়। প্রয়োজনীয় মানগুলি প্যারামিটার সহ মেথড কলের মাধ্যমে পাঠানো হয়। প্রকৃত পদ্ধতি বাস্তবায়ন পদ্ধতি সংজ্ঞাতে আছে। একটি পদ্ধতি কল এবং পদ্ধতি সংজ্ঞা মধ্যে একটি লিঙ্ক আছে.এটি বাঁধাই হিসাবে পরিচিত। দুই ধরনের বাঁধাই আছে। এগুলি হল স্ট্যাটিক বাইন্ডিং এবং ডাইনামিক বাইন্ডিং। স্ট্যাটিক বাইন্ডিং এবং ডাইনামিক বাইন্ডিং এর মধ্যে মূল পার্থক্য হল, স্ট্যাটিক বাইন্ডিং-এ, বাইন্ডিং কম্পাইলের সময় সমাধান করা হয় যখন ডাইনামিক বাইন্ডিং রান টাইমে সমাধান করা হয়, যা কার্যকর করার প্রকৃত সময়। এই নিবন্ধটি এই দুটি বাঁধাই প্রক্রিয়ার মধ্যে পার্থক্য নিয়ে আলোচনা করে৷
স্ট্যাটিক বাইন্ডিং কি?
বাইন্ডিং হল একটি মেথড কল এবং পদ্ধতির সংজ্ঞার মধ্যে লিঙ্ক।
চিত্র 01: স্ট্যাটিক বাইন্ডিং এবং ডাইনামিক বাইন্ডিং
জাভাতে লেখা নিচের প্রোগ্রামটি পড়ুন।
পাবলিক ক্লাস এ{
সর্বজনীন অকার্যকর পদ্ধতি1(){
System.out.println("পদ্ধতি1");
}
সর্বজনীন অকার্যকর পদ্ধতি2(){
System.out.println("পদ্ধতি2");
}
পাবলিক স্ট্যাটিক ভ্যায়েড মেইন (স্ট্রিং আর্গস){
A obj=নতুন A();
obj.method1();
obj.method2();
}
}
উপরের প্রোগ্রাম অনুসারে, A টাইপের একটি অবজেক্ট তৈরি করা হয়েছে। তারপর মেথড1 এবং মেথড2 বলা হয়। নির্বাহের জন্য কোন পদ্ধতিতে কল করা উচিত তা চিহ্নিত করাকে বাইন্ডিং বলা হয়। স্টেটমেন্ট obj.method1() মেথড1() কে কল করবে এবং obj.method2() মেথড2() কে কল করবে। এই লিঙ্কটি বাধ্যতামূলক৷
স্ট্যাটিক বাইন্ডিং-এ, কম্পাইলার দ্বারা কম্পাইলের সময় বাইন্ডিং সমাধান করা হয়। এটি প্রাথমিক বাঁধাই হিসাবেও পরিচিত। একটি প্রোগ্রাম আসলে রান করার আগে বাইন্ডিং ঘটে। স্ট্যাটিক বাইন্ডিং মেথড ওভারলোডিং এ ঘটে। জাভাতে লেখা নিচের প্রোগ্রামটি পড়ুন।
সর্বজনীন অকার্যকর গণনা{
সর্বজনীন অকার্যকর যোগফল(int x, int y){
System.out.println("যোগফল হল ", x+y);
}
সর্বজনীন অকার্যকর যোগফল (ডবল x, ডবল y){
System.out.println("যোগফল হল ", x+y);
}
পাবলিক স্ট্যাটিক ভ্যায়েড মেইন (স্ট্রিং আর্গস){
গণনা ক্যাল=নতুন গণনা();
cal.sum(2, 3);
cal.sum(5.1, 6.4);
}
}
উপরের প্রোগ্রাম অনুসারে, দুটি পূর্ণসংখ্যা পাস করার সময়, দুটি পূর্ণসংখ্যা সহ পদ্ধতিটি চালু করা হবে। দুটি দ্বৈত মান পাস করার সময়, দুটি দ্বিগুণ মানের সাথে সম্পর্কিত পদ্ধতিটি চালু করা হবে। এই বাঁধাই প্রক্রিয়াটি সংকলনের সময় ঘটে। কম্পাইলার জানে যে এটি cal.sum(2, 3) এর জন্য দুটি পূর্ণসংখ্যা মান সহ যোগ পদ্ধতিকে কল করা উচিত। ক্যাল (5.1, 6.4) এর জন্য, এটি দুটি দ্বিগুণ মান সহ যোগফল পদ্ধতিকে কল করবে। সমস্ত প্রয়োজনীয় তথ্য রানটাইমের আগে জানা যায়, তাই এটি প্রোগ্রামের দক্ষতা এবং কার্যকর করার গতি বাড়ায়।
ডাইনামিক বাইন্ডিং কি?
ডাইনামিক বাইন্ডিং-এ কম্পাইলার কম্পাইলের সময়ে বাঁধাইয়ের সমাধান করে না। বাইন্ডিং রান টাইমে ঘটে। এটি দেরী বাঁধাই হিসাবেও পরিচিত। মেথড ওভাররাইডিং এ ডায়নামিক বাইন্ডিং ঘটে। জাভাতে লেখা প্রোগ্রাম দেখুন।
পাবলিক ক্লাস আকৃতি(){
সর্বজনীন অকার্যকর ড্র(){
System.out.println(“আকৃতি আঁকুন”);
}
}
পাবলিক ক্লাস সার্কেল() আকার প্রসারিত করে{
সর্বজনীন অকার্যকর ড্র(){
System.out.println(“বৃত্ত আঁকুন”);
}
}
সর্বজনীন শ্রেণীর ত্রিভুজ() আকার প্রসারিত করে{
সর্বজনীন অকার্যকর ড্র(){
System.out.println(“ত্রিভুজ আঁকুন”);
}
}
পাবলিক ক্লাস টেস্ট{
পাবলিক স্ট্যাটিক ভ্যায়েড মেইন (স্ট্রিং আর্গস){
আকৃতি;
s=নতুন আকৃতি();
s.draw();
s=নতুন সার্কেল();
s.draw();
s=নতুন ত্রিভুজ();
s.draw();
}
}
উপরের প্রোগ্রাম অনুসারে, ক্লাস শেপের একটি মেথড ড্র() আছে। ক্লাস সার্কেল এবং ক্লাস ত্রিভুজ আকৃতি ক্লাস প্রসারিত করে। ক্লাস সার্কেল এবং ক্লাস ট্রায়াঙ্গেল ক্লাস আকৃতির বৈশিষ্ট্য এবং পদ্ধতিগুলি উত্তরাধিকার সূত্রে পেতে পারে। অতএব, ক্লাস শেপ হল সুপার ক্লাস বা প্যারেন্ট ক্লাস। ক্লাস সার্কেল এবং ক্লাস ট্রায়াঙ্গেল হল সাব ক্লাস বা ডিরাইভড ক্লাস। এই ক্লাসগুলির নিজস্ব বাস্তবায়নের সাথে draw() পদ্ধতিও রয়েছে। অতএব, সুপার ক্লাসে ড্র() পদ্ধতিটি ওভাররাইড করা হয়েছে।
প্রধান পদ্ধতিতে, বিভিন্ন বস্তুকে আহ্বান করা হয়। শেপ টাইপের একটি রেফারেন্স ভেরিয়েবল আছে, যা হল s. তারপর, s নির্দিষ্ট শ্রেণী অনুসারে পদ্ধতিটি আহ্বান করে। কম্পাইলের সময়, কম্পাইলার শুধুমাত্র সুপার ক্লাস ড্র পদ্ধতি উল্লেখ করবে।যখন প্রকৃত মৃত্যুদন্ড শুরু হয়, তখন এটি বিভিন্ন ড্র পদ্ধতির বাস্তবায়নের দিকে পরিচালিত করবে। প্রথমে, s আকৃতির অবজেক্টের দিকে নির্দেশ করবে। অতএব, এটি শেপ ক্লাসে ড্র পদ্ধতি চালু করবে। তারপর s সার্কেল টাইপের অবজেক্টকে নির্দেশ করবে এবং এটি সার্কেল ক্লাসের ড্র পদ্ধতিকে আহ্বান করবে। অবশেষে, s ত্রিভুজ টাইপের অবজেক্টকে নির্দেশ করবে, এবং এটি ত্রিভুজ শ্রেণীতে ড্র পদ্ধতি চালু করবে। যদিও রেফারেন্স ভেরিয়েবল টাইপ আকৃতির, বাঁধাই বস্তুর প্রকারের উপর নির্ভর করে। এই ধারণাটি ডায়নামিক বাইন্ডিং নামে পরিচিত। তথ্যটি রান টাইমে সরবরাহ করা হয়, তাই স্ট্যাটিক বাইন্ডিংয়ের তুলনায় কার্যকর করার গতি ধীর হয়।
স্ট্যাটিক বাইন্ডিং এবং ডাইনামিক বাইন্ডিং এর মধ্যে সাদৃশ্য কি?
এই দুটিই একটি পলিমারফিজমের সাথে সম্পর্কিত যা একটি বস্তুকে একাধিক উপায়ে আচরণ করতে দেয়৷
স্ট্যাটিক বাইন্ডিং এবং ডাইনামিক বাইন্ডিং এর মধ্যে পার্থক্য কি?
স্ট্যাটিক বাইন্ডিং বনাম ডাইনামিক বাইন্ডিং |
|
স্ট্যাটিক বাইন্ডিং হল বাইন্ডিংয়ের ধরন যা কম্পাইলের সময় একটি ফাংশন কল করার জন্য প্রয়োজনীয় সমস্ত তথ্য সংগ্রহ করে। | ডাইনামিক বাইন্ডিং হল বাইন্ডিং এর ধরন যা রান টাইমে একটি ফাংশন কল করার জন্য প্রয়োজনীয় সমস্ত তথ্য সংগ্রহ করে। |
বাঁধার সময় | |
সংকলনের সময় স্ট্যাটিক বাইন্ডিং ঘটে। | ডাইনামিক বাইন্ডিং রান টাইমে ঘটে। |
কার্যকারিতা | |
স্ট্যাটিক বাইন্ডিং বাইন্ডিংয়ের জন্য প্রকার তথ্য ব্যবহার করে। | ডাইনামিক বাইন্ডিং আবদ্ধ করার সমাধান করতে বস্তু ব্যবহার করে। |
প্রকৃত বস্তু | |
স্ট্যাটিক বাইন্ডিং বাইন্ডিংয়ের জন্য প্রকৃত বস্তু ব্যবহার করে না। | ডাইনামিক বাইন্ডিং, বাইন্ডিংয়ের জন্য আসল বস্তু ব্যবহার করুন। |
প্রতিশব্দ | |
স্ট্যাটিক বাইন্ডিংকে প্রারম্ভিক বাইন্ডিংও বলা হয়। | ডাইনামিক বাইন্ডিং লেট বাইন্ডিং নামেও পরিচিত। |
সম্পাদনা | |
স্ট্যাটিক বাইন্ডিংয়ে কার্যকর করার গতি দ্রুত। | ডাইনামিক বাইন্ডিংয়ে কার্যকর করার গতি কম। |
উদাহরণ | |
স্ট্যাটিক বাইন্ডিং পদ্ধতি ওভারলোডিংয়ে ব্যবহৃত হয়। | ডাইনামিক বাইন্ডিং মেথড ওভাররাইডিং এ ব্যবহৃত হয়। |
সারাংশ – স্ট্যাটিক বাইন্ডিং বনাম ডাইনামিক বাইন্ডিং
একটি পদ্ধতি কল এবং পদ্ধতি সংজ্ঞা মধ্যে একটি লিঙ্ক আছে.এটি বাঁধাই হিসাবে পরিচিত। স্ট্যাটিক বাইন্ডিং এবং ডাইনামিক বাইন্ডিং নামে দুই ধরনের বাইন্ডিং আছে। স্ট্যাটিক বাইন্ডিং এবং ডাইনামিক বাইন্ডিং এর মধ্যে পার্থক্য হল যে স্ট্যাটিক বাইন্ডিং এ বাইন্ডিং কম্পাইল টাইমে সমাধান করা হয় যখন ডাইনামিক বাইন্ডিং রান টাইমে সমাধান করা হয়, যা এক্সিকিউশনের প্রকৃত সময়। যেহেতু রান টাইমের আগে প্রয়োজনীয় তথ্য প্রদান করা হয়, তাই গতিশীল বাইন্ডিংয়ের তুলনায় স্ট্যাটিক বাইন্ডিং দ্রুত কার্যকর হয়।
স্ট্যাটিক বাইন্ডিং বনাম ডায়নামিক বাইন্ডিং এর PDF ডাউনলোড করুন
আপনি এই নিবন্ধটির পিডিএফ সংস্করণ ডাউনলোড করতে পারেন এবং উদ্ধৃতি নোট অনুসারে অফলাইন উদ্দেশ্যে এটি ব্যবহার করতে পারেন। দয়া করে এখানে PDF সংস্করণ ডাউনলোড করুন: স্ট্যাটিক বাইন্ডিং এবং ডাইনামিক বাইন্ডিং এর মধ্যে পার্থক্য