la mise en œuvre de antirebond en Java

Pour certains code que j'ai écris que je pouvais utiliser une agréable mise en œuvre générale de debounce en Java.

public interface Callback {
  public void call(Object arg);
}

class Debouncer implements Callback {
    public Debouncer(Callback c, int interval) { ... }

    public void call(Object arg) { 
        //should forward calls with the same arguments to the callback c
        //but batch multiple calls inside `interval` to a single one
    }
}

Quand call() est appelée plusieurs fois dans interval millisecondes avec le même argument à la fonction de callback doit être appelé qu'une seule fois.

Une visualisation:

Debouncer#call  xxx   x xxxxxxx        xxxxxxxxxxxxxxx
Callback#call      x           x                      x  (interval is 2)
  • N' (quelque chose comme) cela existe déjà dans certaines Java standard de la bibliothèque?
  • Comment voulez-vous mettre en œuvre que?
InformationsquelleAutor levinalex | 2011-01-20