If you are planning to use an interface with multiple parameters,
one can use the following structural pattern and implement or override apply - a method based on your requirement.
public abstract class Invoker {
public T apply() {
return apply(null);
}
public abstract T apply(Object... params);
}