Mi è stato suggerito di inserire la domanda qui, quindi sto facendo così;)
Ho bisogno di un'interfaccia comune che rappresenti un comportamento specifico:
public interface Contract(){
public void methodA();
public void methodB();
// and so on...
}
Il problema è che, per soddisfare questo comportamento, l'implementazione può essere totalmente senza stato: può avere un costruttore privato ed esporre solo metodi statici:
public class MyUtilityClass /*implements Contract*/{
private MyUtilityClass(){}
public static void methodA(){
// some implementation here...
}
public static void methodB(){
// some implementation here...
}
}
Ho molte di queste classi, con un comportamento diverso, quindi voglio refactoring e gestire sotto un'interfaccia comune.
Poiché non posso implementare Contract
con metodi statici, è l'unica soluzione per convertire MyUtilityClass
in un singleton che implementa l'interfaccia per raggiungere il mio obiettivo? O forse suggeriresti qualcos'altro? Ad esempio Metodo modello e Strategia che possono essere iniettati a seconda di una situazione specifica?
Che cosa proponesti?