public interface Plugin {
void init();
void enable();
void disable();
}
public class LoggingPlugin implements Plugin {
public void init() {
}
public void enable() {
System.out.println("LoggingPlugin enabled");
}
public void disable() {
System.out.println("LoggingPlugin disabled");
}
}
public class PluginManager {
private List<Plugin> plugins;
public void loadPlugins() {
plugins = new ArrayList<>();
plugins.add(new LoggingPlugin());
}
public void initPlugins() {
for (Plugin plugin : plugins) {
plugin.init();
}
}
public void enablePlugins() {
for (Plugin plugin : plugins) {
plugin.enable();
}
}
public void disablePlugins() {
for (Plugin plugin : plugins) {
plugin.disable();
}
}
}
public class Application {
public static void main(String[] args) {
PluginManager pluginManager = new PluginManager();
pluginManager.loadPlugins();
pluginManager.initPlugins();
pluginManager.enablePlugins();
pluginManager.disablePlugins();
}
}