You can implement the logic inside the interface as default implementation. Thus, avoid duplicating it. Refer to https://www.baeldung.com/java-static-default-methods#why-interfaces-need-default-methods for more details.
e.g.
public interface Handler {
default Container createComponents(ar1, arg2, arg3) {
// logic here
}
}
public class DefaultHandler implements Handler {
}
@ViewScoped
public class SpecificHandler extends DefaultHandler {
}