Mid
From PDF
OOP
C# OOP
How would you design a plugin system using interfaces?
Short answer: Define an interface like IPlugin with a Run() method.
Explain a bit more
Each plugin implements IPlugin and can be loaded dynamically. interface IPlugin { void Run(); } class PluginA : IPlugin { public void Run() => Console.WriteLine("Plugin A running"); } class PluginB : IPlugin { public void Run() => Console.WriteLine("Plugin B running"); } // Usage List<IPlugin> plugins = new List<IPlugin> { new PluginA(), new PluginB() }; foreach (var p in plugins) p.Run();
Example code
Define an interface like IPlugin with a Run() method. Each plugin implements IPlugin and can be loaded dynamically. interface IPlugin { void Run(); }
class PluginA : IPlugin { public void Run() => Console.WriteLine("Plugin A running"); } class PluginB : IPlugin { public void Run() => Console.WriteLine("Plugin B running"); } // Usage List<IPlugin> plugins = new List<IPlugin> { new PluginA(), new PluginB() }; foreach (var p in plugins) p.Run();
Real-world example (ShopNest)
Checkout calls IPaymentGateway.Charge(). Razorpay and Stripe adapters implement the same interface, so ShopNest can switch gateways without rewriting the order service.
Say this in the interview
- Define — one clear sentence (the short answer above).
- Example — relate it to a project like ShopNest or your real work.
- Trade-off — when you would not use it.
Share this Q&A
Share preview image: https://www.toolliyo.com/images/toolliyo-logo.png