para que puedas desacoplar tus aplicación
para que puedas comunicar entre varios formularios de tu aplicacion de escritorio javafx swing o lo que sea
porfavor respondamen no me castiges con el latigo de tu indiferencia
no me rechazes como ella
ejemplo de uso
Código:
public class Main {
public static void main(String args[]) {
EventBus eventBus = new EventBus();
eventBus.chanel("/sistema/session/parametros").on(t -> System.out.println(t));
eventBus.chanel("/sistema/session/parametros").fire(new RegistraParametro("mi parametrito"));
}
}
Código:
public class RegistraParametro {
private String string;
public RegistraParametro(String string) {
this.string = string;
}
@Override
public String toString() {
return "RegistraParametro [string=" + string + "]";
}
}
el resto de clases son cortitas
Código:
import java.util.function.Function;
public interface Callbak { void apply(Object obj); }
Código:
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.function.Consumer;
import java.util.function.Function;
public class Chanel {
private List<Callbak> events = new ArrayList<>();
public void fire(Object event) {
events.forEach(p -> p.apply(event));
}
public void on(Callbak event) {
events.add(event);
}
}
Código:
import java.util.HashMap;
public class EventBus {
private HashMap<String, Chanel> chanels = new HashMap<>();
public Chanel chanel(String string) {
return chanels.computeIfAbsent(string, p -> new Chanel());
}
}