How would you design a plugin system using interfaces?
- 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();