In sostanza, ciò che vorrei ottenere è un modo per scorrere attraverso un elenco e chiamare metodi specifici per l'interfaccia degli oggetti nell'attrezzatura di raccolta.
Nel mio progetto Java, si otterrebbe qualcosa di simile a questo:
//GameComponent would be my empty abstract class
HashSet<GameComponent> components = new HashSet<GameComponent>();
components.add(/* instance of a class that extends GameComponent and implements Drawable || Updatable */);
for (Drawable d : components)
d.draw();
for (Updatable u : components)
u.update();
I miei amici mi hanno suggerito di creare solo due elenchi separati, ma ciò significa che alcuni oggetti saranno presenti in entrambi gli elenchi.
Penso anche che abbia senso (astrazione-saggio) avere una lista di GameComponents e scorrere attraverso quella lista.
Ma anche a me non piace avere una classe vuota da ereditare, solo per la categorizzazione.
Quindi la domanda è: il mio approccio ha senso? Se è così, è elegante? In caso contrario, quale modello potrei seguire?