Foro de elhacker.net

Programación => Java => Mensaje iniciado por: sapito169 en 23 Diciembre 2020, 01:09 am



Título: contribucion ejemplo de eventbus
Publicado por: sapito169 en 23 Diciembre 2020, 01:09 am
pequeña contribución un ejemplo de un bus de eventos
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());

}

}


Título: Re: contribucion ejemplo de eventbus
Publicado por: TickTack en 17 Enero 2021, 11:09 am
Hola sapito169,

porfavor respondamen no me castiges con el latigo de tu indiferencia
no me rechazes como ella

¿eh que?


Saludos


Título: Re: contribucion ejemplo de eventbus
Publicado por: sapito169 en 18 Enero 2021, 02:52 am
se siente raro quedar hablando solo


Título: Re: contribucion ejemplo de eventbus
Publicado por: rub'n en 18 Enero 2021, 03:13 am
se siente raro quedar hablando solo

Y acaso necesitas obligatoriamente que te respondan? Sapito tienes mas de 10 años en el foro, dejale eso a alguien con poco tiempo aqui  :xD , a mi cada vez que dices eso me da mucha risa.

Simple y llanamente sigue colaborando y ya, que tan dificil es?

ajjajaaa


Título: Re: contribucion ejemplo de eventbus
Publicado por: TickTack en 18 Enero 2021, 13:46 pm
Hola sapito169,

se siente raro quedar hablando solo

¿y tu irritante metáfora se siente menos rara que un "estaría encantado de recibir sugerencias, críticas o adiciones"?


Saludos


Título: Re: contribucion ejemplo de eventbus
Publicado por: TickTack en 18 Enero 2021, 23:22 pm
Hola de nuevo, sapito169,

Channel con doble n y Callback con c ;).

Por lo demás: Channel tipificados estarían bien, como ejercicio podrías incluir Generics y verificaciones de tipo en tiempo de ejecución :). Y, por supuesto, un procesamiento asincrónico de los Events, que también son buenos para probarlos :).


Saludos


Título: Re: contribucion ejemplo de eventbus
Publicado por: sapito169 en 19 Enero 2021, 05:20 am
me van a tener que seguir soportando