Qu'est ce qu'un retour d'appel de l'interface en Java?
Cet extrait de code pour l'interface SetObserver est pris de Efficace Java (Éviter les excès de Synchronisation Point 67)
public interface SetObserver<E> {
//Invoked when an element is added to the observable set
void added(ObservableSet<E> set, E element);
}
Et la SetObserver
est passé à addObserver()
et removeObserver
méthode donnée ci-dessous :
//Broken - invokes alien method from synchronized block!
public class ObservableSet<E> extends ForwardingSet<E> {
public ObservableSet(Set<E> set) {
super(set);
}
private final List<SetObserver<E>> observers =
new ArrayList<SetObserver<E>>();
public void addObserver(SetObserver<E> observer) {
synchronized (observers) {
observers.add(observer);
}
}
public boolean removeObserver(SetObserver<E> observer) {
synchronized (observers) {
return observers.remove(observer);
}
}
private void notifyElementAdded(E element) {
synchronized (observers) {
for (SetObserver<E> observer : observers)
observer.added(this, element);
}
}
Bloch se réfère à la SetObserver<E>
interface comme un de retour d'appel de l'interface . A quand une interface appelée un retour d'appel de l'interface en Java?
double possible de qu'est Ce qu'une fonction de rappel?
oui, c'était une faute de frappe. l'édition de la question dès maintenant .
Le rappel est très générale de ce terme utilisé en informatique. Quand un morceau de code s'intéresse à un événement, il enregistre une fonction à appeler lorsqu'un événement se produit, de sorte que ce morceau de code peut faire ce qui est nécessaire. Il n'est pas spécifique à javascript. En C/C++, il y avait des pointeurs de fonction, en C# il y a des délégués et en Java, nous le faisons à l'aide d'interfaces.
Ces Interfaces peuvent être utilisées pour mettre en œuvre rappels en Java. Un callback est une situation où vous souhaitez passer un référence pour certains comportement et avoir un autre objet de l'appeler plus tard. En C ou en C++, c'est le premier territoire pour les pointeurs de fonction. En Java, on utilise interfaces à la place.
ObservableSet<E>
n'est pas une interface, je suppose que tu veux dire SetObserver<E>
oui, c'était une faute de frappe. l'édition de la question dès maintenant .
Le rappel est très générale de ce terme utilisé en informatique. Quand un morceau de code s'intéresse à un événement, il enregistre une fonction à appeler lorsqu'un événement se produit, de sorte que ce morceau de code peut faire ce qui est nécessaire. Il n'est pas spécifique à javascript. En C/C++, il y avait des pointeurs de fonction, en C# il y a des délégués et en Java, nous le faisons à l'aide d'interfaces.
Ces Interfaces peuvent être utilisées pour mettre en œuvre rappels en Java. Un callback est une situation où vous souhaitez passer un référence pour certains comportement et avoir un autre objet de l'appeler plus tard. En C ou en C++, c'est le premier territoire pour les pointeurs de fonction. En Java, on utilise interfaces à la place.
OriginalL'auteur Geek | 2012-07-20
Vous devez vous connecter pour publier un commentaire.
Une exigence générale pour une interface à une "interface de rappel", c'est que l'interface fournit un moyen pour le destinataire de l'appel pour appeler le code à l'intérieur de l'appelant. L'idée principale est que l'appelant a un morceau de code qui doit être exécuté lorsque quelque chose arrive dans le code d'un autre composant. Rappel des interfaces de fournir un moyen de passer ce code pour le composant appelé: l'appelant implémente une interface, et l'appelant invoque l'une de ses méthodes.
Le mécanisme de rappel peut être mis en œuvre différemment dans différents langages: C# dispose de délégués et d'événements, en plus de rappeler les interfaces, C a les fonctions qui peuvent être transmises par pointeur, Objective-C a délégué protocoles, et ainsi de suite. Mais l'idée principale est toujours la même: l'appelant passe un morceau de code pour être appelé lors de la survenance d'un certain événement.
Je pense que la description actuelle est à droite: identification de l'implémente une interface, donne que la mise en œuvre de l'appelant et le destinataire de l'appel des appels des méthodes de la mise en œuvre en tant que de besoin.
OriginalL'auteur dasblinkenlight
Ce blog explique le rappel de l'interface en java mieux avec un exemple
OriginalL'auteur ram