Recentemente ho iniziato a lavorare sulla creazione di una libreria client. Un problema che sto affrontando ora è che devo spostare l'interfaccia sottostante Attributes
nella libreria client, ma le classi concrete (business logic) dovrebbero rimanere nella libreria originale. Il problema qui è che le firme del metodo dell'interfaccia sottostante sono le classi Concrete.
public interface Attributes {
public Integer getAttribute(IntegerAttr attr);
public Boolean getAttribute(BooleanAttr attr);
public String getAttribute(StringAttr attr);
// some more code.
}
Ciascuna delle classi di parametri precedenti implementa un'interfaccia comune chiamata Attr
.
class IntegerAttr implements Attr { .. }
class BooleanAttr implements Attr { .. }
...
Ora, se provo a impostare i parametri per digitare Attr
nell'interfaccia Attributes
, otterremo l'eccezione Override a causa della stessa firma del metodo.
Ma devo spostare questa interfaccia nella libreria client ma non nelle classi concrete.
Qualsiasi suggerimento su questo per favore.