আপনি যদি 4-দরজার যাত্রী গাড়ি চালনা করতে পারেন তবে আপনি পিকআপ ট্রাকও চালাতে পারবেন। আপনি যদি একটি দাহ মোটর দিয়ে গাড়ী চালিত করেন তবে আপনি বৈদ্যুতিন গাড়িও চালাতে পারেন।
যাত্রী যানবাহনের আকার এবং আকার একের পরের থেকে আলাদা হতে পারে। যে সমস্ত মোটর সেই গাড়িগুলিকে চালিত করে তা সম্পূর্ণ আলাদাও হতে পারে। তবে চালকের পক্ষে কিছু যায় আসে না।
আপনি কেবল ভিতরে ,োকার জন্য, বাকলটি করুন, গাড়িটি শুরু করুন, গিয়ারে রেখে যান এবং ড্রাইভ করুন। কারণ গাড়ি, ট্রাক এবং ভ্যানগুলি বহুতল রূপযুক্ত ।
পলিমারফিজম: এটি ভেঙে ফেলা হচ্ছে
পলিমারফিজম শব্দটি দেখি। আপনি এটিকে পলি , মরফ এবং আইএসএম এ ভাগ করতে পারেন ।
পলি মানে অনেকগুলি, যেমন বহুভুজের অর্থ বহু কোণ। বিশেষ্য হিসাবে ব্যবহৃত হয়, একটি আকার একটি প্রজাতির বিভিন্ন। এবং আইএসএম মানে সিস্টেম হতে পারে।
সুতরাং বহুবর্ষ বলতে সহজভাবে বোঝায় অনেকগুলি প্রকারের সিস্টেম। যদিও এটি প্রোগ্রামিংয়ে কীভাবে ব্যবহৃত হয় সে সম্পর্কে এখনও আপনাকে বেশি কিছু জানায় না। এটা পরের।
যদি এটি হাঁসের মতো হাঁটা যায় … পলিমারফিক অবজেক্টগুলি কেন দুর্দান্ত

আপনি যখন আপনার কোডটিতে এমন কোনও শ্রেণি তৈরি করেন যা অন্য শ্রেণীর কাছ থেকে উত্তরাধিকার সূত্রে আসে, আপনি নতুন শ্রেণিকে একটি চুক্তিতে আবদ্ধ করেন। চুক্তিতে বলা হয়েছে যে পিতামাতার প্রতিটি পরিবর্তনশীল এবং কার্যকারিতাও সন্তানের মধ্যে থাকবে।
প্রতিটি গাড়ীর একটি স্টিয়ারিং হুইল, গ্যাস এবং ব্রেক পেডাল এবং একটি টার্ন সিগন্যাল রয়েছে। গাড়ি চালানোর জন্য আপনাকে হুড খোলার দরকার নেই। সমস্ত বিষয় এটি একটি গাড়ী।
অন্যান্য ক্লাস থেকে উত্তরাধিকারী ক্লাসগুলির ক্ষেত্রেও একই জিনিস প্রযোজ্য। এখানে টাইপস্ক্রিপ্টের একটি উদাহরণ রয়েছে:
class Vehicle {
private _engine: string;
private _tires: number;
constructor(engine: string = "combustion", tires: number = 4) {
this._engine = engine;
this._tires = tires;
}
accelerate(velocity: number) {
console.log("accelerating at a velocity of " + velocity);
}
brake(pressure: number) {
console.log("applying " + pressure + " pressure");
}
turnLeft() {
console.log("turning left");
}
turnRight() {
console.log("turning right");
}
}
class Car extends Vehicle {
}
class Tesla extends Car {
constructor() {
super("electric");
}
}
এই উদাহরণে, একটি যানবাহন ক্লাস রয়েছে। গাড়ির ক্লাসটি যানবাহন ক্লাস থেকে উত্তরাধিকার সূত্রে প্রাপ্ত। এবং টেসলা কার থেকে উত্তরাধিকার সূত্রে প্রাপ্ত। এখন আসুন কয়েকটা অবজেক্ট তৈরি করুন এবং সেগুলি দেখুন।
let myCoupe: Car = new Vehicle();
console.log(myCoupe);
console.log(myCoupe.constructor.name);
let mySedan: Vehicle = new Tesla();
console.log(mySedan);
console.log(mySedan.constructor.name);
myCoupe.turnLeft();
mySedan.turnLeft();
আপনি দেখতে পাচ্ছেন যে আমরা মাইকিউপকে গাড়ি এবং মাইসিডানকে একটি যানবাহন হিসাবে ঘোষণা করেছি । তারপরে আমরা মাইকিউপকে নতুন যানবাহন হিসাবে এবং মাইসেডনকে একটি নতুন টেসলা হিসাবে ইনস্ট্যান্ট করেছি । আপনি যদি টাইপস্ক্রিপ্ট স্যান্ডবক্সটিতে যান এবং কোডটি চালান, আপনি দেখতে পাবেন এটি কোনও ত্রুটি ছাড়াই কাজ করে । এবং এটি চুক্তির উপর ভিত্তি করে আপনার প্রত্যাশা মতো আচরণ করে।
অন্য কথায়, সমস্ত যানবাহন বাম দিকে ঘুরতে পারে কারণ তারা এটিকে যানবাহন বর্গ থেকে উত্তরাধিকারসূত্রে পেয়েছে। সংকলক জানে যে যানবাহনের প্রতিটি শিশু চুক্তিতে সম্মত হয়েছে। সুতরাং এটি ধরে নিচ্ছে যে সবকিছু ঠিক আছে, বিষয়গুলি কোনও শ্রেণীর হিসাবে টাইপ করা বা ইনস্ট্যান্ট করা হয়নি।
এটিকে কখনও কখনও "হাঁসের টাইপিং" বলা হয়। সংকলকটি ধরে নিয়েছে যে এটি হাঁসের মতো হাঁটলে এবং হাঁসের মতো কথা বললে, এটি হাঁসের মতোও হতে পারে। সুতরাং সংকলক বিশদ সম্পর্কে চিন্তা করে না এবং কেবল বস্তুর হাঁসের মতো আচরণ করে।
পলিমারফিজম আপনার কোডকে বুলেটপ্রুফ করে তোলে
পলিমারফিজম চুক্তির আর একটি সুবিধা হ'ল একটি গ্যারান্টি যা আপনার কোডটি কার্যকর করবে। যদি আপনি দৃ all়ভাবে আপনার সমস্ত ভেরিয়েবলগুলি টাইপ করেন এবং প্রতিটি ফাংশন কী ফিরিয়ে দেয় তবে আপনি জানেন যে প্রতিটি শিশু সর্বদা ভেরিয়েবল, ফাংশন এবং প্রকারের সাথে মেলে।
এর অর্থ আপনি আপনার প্রোগ্রামটি ভঙ্গ না করে আপনার ক্লাসে কোড যুক্ত করতে এবং পরিবর্তন করতে পারেন। যানবাহনের কোনও অবজেক্টের উল্লেখ করা প্রতিটি বস্তু সর্বদা ডেটা এবং কার্যকারিতা পাবে যা প্রত্যাশা পূরণ করে, কার যতই পরিবর্তন আসুক না কেন।
ফাংশনের অভ্যন্তরীণ কোড সঠিক ফলাফল নাও দিতে পারে। তবে এটি ভিন্ন ধরণের সমস্যা। যতক্ষণ না এই ক্রিয়াটি চুক্তি অনুসরণ করে এবং প্রত্যাশিত ধরণের ভেরিয়েবলটি ফিরিয়ে দেয় ততক্ষণে এটি কোনও কোড-ব্রেকিং ত্রুটির ফলশ্রুতি দেয় না।
পলিমারফিজম বিশাল, এবং আপনার 10 টি প্রোগ্রামিং নীতিমালা এখানে জানা উচিত ।
পলিমারফিজম অনুশীলন করুন

- একটি বোট ক্লাস তৈরি করতে উপরের স্যান্ডবক্স লিঙ্কটি ব্যবহার করুন।
- কোনও নতুন নৌকার অবজেক্টটি এমনভাবে ইনস্ট্যান্ট করুন যাতে এটি কোনও যানবাহনের ধরণের, তবে এখনও নৌকার মতো লাগে boat
- নৌকাটি এখনও গাড়ির মতো আচরণ করে তা নিশ্চিত করুন।
পলিমারফিজমের একটি চূড়ান্ত উদাহরণ
পলিমারফিজম প্রাথমিকভাবে উপলব্ধি করার জন্য একটি জটিল ধারণা হতে পারে। তবে একবার আপনি এটি পেয়ে গেলে, আপনি আসলে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং কী তা বোঝার পক্ষে একটি বিশাল পদক্ষেপ নিয়েছেন। ধারণাটি এখনও তাত্ত্বিক মনে হতে পারে, যদিও। এটি আপনাকে কতটা কার্যকর তা দেখার জন্য এখানে একটি দৃ real় বাস্তব-জগতের উদাহরণ।
কল্পনা করুন যে আপনি একটি ওয়েব অ্যাপ তৈরি করছেন যা একটি মাইএসকিউএল ডাটাবেসের সাথে সংযুক্ত রয়েছে। তারপরে বস কোনও পোস্টগ্রাইএসকিউএল ডাটাবেসে স্যুইচ করার সিদ্ধান্ত নেন। তার অর্থ কি আপনার সমস্ত ডাটাবেস কলগুলি আবার লিখতে হবে?
না, তা হয় না। যদি আপনার অ্যাপ্লিকেশন উপ-শ্রেণীর সাথে ডেটাঅ্যাক্সেস ক্লাস ব্যবহার করে যা প্রকৃতপক্ষে ডেটাটি নিয়ে উপহাস করে তবে আপনি ভাগ্যবান। ডেটাঅ্যাক্সেস শ্রেণি ডেটাবেসের সাথে কীভাবে ইন্টারঅ্যাক্ট করে তা নয়, আপনার অ্যাপ কীভাবে ডেটার সাথে ইন্টারঅ্যাক্ট করে তা নির্ধারণ করে।
আপনি MySQLAccess এবং PostgresQLAccess মত উপ-শ্রেণীর যে সব মলিন কাজ আছে। তবে যদি আপনার অ্যাপ্লিকেশনটিতে কেবল ডেটাঅ্যাক্সেস অবজেক্ট থাকে তবে আপনি অ্যাপ্লিকেশন কোডের একক লাইনটি পুনরায় না লিখে ডেটাবেসগুলি সরিয়ে নিতে পারবেন।