Cerco di esercitarmi con gli schemi di progettazione ed esplorare una delle possibili implementazioni del modello di progettazione degli osservatori in Java. Ho prestato attenzione, che in questo esempio l'oggetto è definito con il tipo di interfaccia e non con quello di classe:
//user-made observer interface
public interface Observer {…}
//observer class to watch after subject objects
public class MyTopicSubscriber implements Observer {…}
//subject class to notify observer of any updates
public class MyTopicPublisher implements Subject {
private List<Observer> observers;
}
Come puoi vedere, l'elenco observers
è un tipo di Observer
, che è un'interfaccia. Perché un programmatore, in questo caso, ha deciso di utilizzare l'interfaccia come tipo per l'elenco di oggetti e non il nome della classe MyTopicSubscriber
?
L'esempio di codice completo pubblicato sopra:
link
Aggiornamento ai moderatori:
In questa domanda, non chiedo quale sia esattamente l'interfaccia, ma perché valga la pena usare l'interfaccia come un tipo di oggetti della collezione. Pertanto, la mia domanda non può essere considerata un possibile duplicato della domanda proposta, che riguarda la spiegazione di base di quali interfacce sono in programmazione, la mia domanda è più stretta e specifica.
Grazie.