public interface Extension {
void doSomething();
}
public class Framework {
private List<Extension> extensions;
public void registerExtension(Extension extension) {
extensions.add(extension);
}
public void performAction() {
for (Extension extension : extensions) {
extension.doSomething();
}
}
}
public class CustomExtension implements Extension {
public void doSomething() {
}
}
public class Application {
public static void main(String[] args) {
Framework framework = new Framework();
Extension extension = new CustomExtension();
framework.registerExtension(extension);
framework.performAction();
}
}