📘 C# Blog Series – Blog 35 **“C# Polymorphism — One Interface, Multiple Behaviours कैसे काम करते हैं?

📘 C# Blog Series – Blog 35

**“C# Polymorphism — One Interface, Multiple Behaviours कैसे काम करते हैं?




(Real-Life Example: अलग-अलग GPS Models को एक ही Method से Process करना)”**

Polymorphism OOP का सबसे स्मार्ट, सबसे powerful concept है।
इससे आपका code dynamic, flexible और scalable बनता है।

और GPS Tracking Server जैसे systems में तो polymorphism हर लेवल पर उपयोग होता है:

  • अलग-अलग device models → अलग parsing

  • एक ही Process() method → कई behaviours

  • विभिन्न alert types → अलग handling

  • One interface → many implementations

आज इसे super-easy तरीके + आपके real GPS examples से समझते हैं।


🟦 1. Polymorphism क्या है? (Simple Definition)

Polymorphism =
One Interface, Many Implementations
या
एक ही method नाम → अलग-अलग behaviours

Example (real life):
“Start” बटन

  • AC → चालू होता है

  • TV → on होता है

  • Car → engine start

  • Laptop → boot

बटन तो एक ही है, behaviour अलग।

यही programming में polymorphism है।


🟢 2. Polymorphism के दो Type

1️⃣ Compile-time (Method Overloading)
2️⃣ Runtime (Method Overriding — सबसे important)


3. Method Overloading (Compile-Time Polymorphism)

Same method name + different parameters:

void Save(string msg) { } void Save(string msg, int id) { } void Save(string msg, DateTime time) { }

Compiler decide करेगा कौनसा call होगा।


4. Method Overriding (Runtime Polymorphism)

इसी का use सबसे ज्यादा GPS Servers में होता है।

Base class:

class GPSDevice { public virtual void Parse(string packet) { Console.WriteLine("Base parser"); } }

Derived classes:

class G17Device : GPSDevice { public override void Parse(string packet) { Console.WriteLine("G17 parse logic"); } } class S15Device : GPSDevice { public override void Parse(string packet) { Console.WriteLine("S15 parse logic"); } }

🌟 5. Real-Life GPS Example: एक ही Method से सभी devices का processing

GPSDevice dev = GetDeviceFromImei(imei); dev.Parse(packet);

अगर dev = G17 → G17 parser चलेगा
अगर dev = S15 → S15 parser चलेगा

यही है Runtime Polymorphism 🔥


6. Real Use Case: Packet Handler

List<GPSDevice> devices = new() { new G17Device(), new S15Device(), new A20Device() }; foreach (var d in devices) { d.Parse(packet); // हर device अलग logic चलाएगा }

Server को पता भी नहीं device कौनसा है →
फिर भी सही logic चलेगा।


🟠 7. Polymorphism with Interface (Super Useful)

Interface:

interface IPacketParser { void Parse(string pkt); }

Different implementations:

class G17Parser : IPacketParser { public void Parse(string pkt){...} } class S15Parser : IPacketParser { public void Parse(string pkt){...} } class A20Parser : IPacketParser { public void Parse(string pkt){...} }

Use:

IPacketParser parser = new G17Parser(); parser.Parse(pkt);

Tomorrow:

parser = new S15Parser(); parser.Parse(pkt);

Same code → different behaviour.


🔵 8. Real GPS Example: Alerts Handling

abstract class AlertHandler { public abstract void Handle(string pkt); } class LowBatteryHandler : AlertHandler { public override void Handle(string pkt) { /* logic */ } } class SOSHandler : AlertHandler { public override void Handle(string pkt) { /* logic */ } }

Use:

AlertHandler h = new SOSHandler(); h.Handle(pkt);

🟣 9. Polymorphism + Factory Pattern (Most Used Design)

GPS server में based on model:

public IPacketParser GetParser(string model) { return model switch { "G17" => new G17Parser(), "S15" => new S15Parser(), _ => new DefaultParser() }; }

Use:

var parser = GetParser(device.Model); parser.Parse(packet); // behaviour auto change

🔥 10. Benefits of Polymorphism (Especially in GPS Systems)

✔ Same method → many behaviours
✔ Clean architecture
✔ No huge if-else
✔ No switch explosion
✔ Adding new device easy
✔ Maintenance super-easy
✔ Loose-coupled design
✔ Testable & scalable

Imagine 20 device models supported →
Without polymorphism your code would become hell.


📌 11. कब Polymorphism Use करना चाहिए?

✔ जब classes का behavior अलग हो
✔ जब system scalable चाहिए
✔ जब sub-classes की variety हो (जैसे different GPS models)
✔ जब base functionality same हो
✔ जब आपको dynamic behavior चाहिए


🔚 Conclusion

C# Polymorphism आपके system को बनाता है:

✔ Dynamic
✔ Flexible
✔ Extensible
✔ Clean
✔ Professional
✔ GPS-ready design

GPS tracking server में polymorphism backbone की तरह काम करता है—
packet parsing से लेकर alert handling तक।

Post a Comment

0 Comments

Translate

Close Menu