Eu diria que o ideal é teres um BusinessObject com toda a informação que poderá ser necessário e depois cabe a cada implementação da interface utilizar toda ou apenas parte da informação.
Olá, obrigado pela resposta… Mas acho que com o passar do tempo, esses parametros aumentariam e causariam um pouco de confusão para quem fosse usar a classe, pois não ficaria claro oque deveria ser preenchido.
Será que realmente não tenho muita opção, perante isso??
Acredito que esteja usando interfaces de maneira incorreta.
Na interface você chamaria o método da mesma forma, sem se preocupar com a implementação.
Se cada classe que chamar o método precisa saber da implementação (para saber o que ele recebe), não faz sentido ter interface.
Uma sugestão no seu caso seria deixar o método registraOcorrencia sem parametros e transformar os argumentos em atributos da classe.
public static void main(String[] args) {
//na hora de criar os objetos, passo os valores específicos
RegistradorOcorrencia[] registradores = {
new Plataforma1(documento),
new Plataforma2(documento, path ),
new Plataforma3(documento, path, arquivo)
};
//na hora de chamar não importa a implementação
for (RegistradorOcorrencia registrador : registradores) {
registrador.registraDocumento();
}
}