Alguien puede ayudarme a resolver esta clase o con algunos link que me ayuden a saber como resolverla???
public interface Synchronisable
{
public long getTimestamp();
public String getId();
}
public interface SynchronisedDataListener
{
public void processSynchronisedData(long timestamp, Set<Synchronisable> data);
}
public class DataSynchroniser
{
private SynchronisedDataListener listener;
public void addToSynchroniseSet(String id)
{
}
public void processData(Synchronisable data)
{
}
public void removeFromSynchroniseSet(String id)
{
}
}
Que tal hommie usa Geshi, (https://3.bp.blogspot.com/-O6qDroNEzts/W8sWHPnV3MI/AAAAAAAADJw/mypp_PTYxbA_uKr7E-O-x0epDjSUdk3mwCK4BGAYYCw/s1600/geshi.gif)
que patron intentas hacer? Observer/Observable ? tanto removeFromSynchroniseSet y addToSynchroniseSet deberían de tener la palabra clave synchronized public synchronized void addToSynchroniseSet(String id)
public synchronized void removeFromSynchroniseSet(String id)
Indica que cada hilo o multiples, deben acceder o remover un recurso compartido de manera sincronizada uno tras otro, evitando problemas de concurrencia en lo posible, pero el abuso de estos produce otros efectos secundarios como dead locks.
Hola,
SI estoy intentado hacer un observable alguna sugerencia adicional?
https://github.com/rucko24/MVP/blob/da986a086c11b8118470cf323ece9bf6be29281c/src/main/java/com/Core/vaadin/arduino/broadcaster/Broadcaster.java
uno de hace tiempo
public class Broadcaster implements Serializable {
private static ExecutorService executorService = Executors.newSingleThreadExecutor();
private static LinkedList<BroadcasterListener> listeners = new LinkedList<BroadcasterListener>();
public interface BroadcasterListener {
void recibirBroadcast( String message , boolean value);
}
public static synchronized void register(BroadcasterListener listener) {
listeners.add(listener);
}
public static synchronized void unregister(BroadcasterListener listener) {
listeners.remove(listener);
}
public static synchronized void broadcast( final String menssage, boolean value) {
for(final BroadcasterListener listener : listeners ) {
executorService.execute(() -> {
listener.recibirBroadcast(menssage, value);
});
}
}
}
La clase que quieres que reciba y envié los cambios a las demás debe implementar a
public TuClase implements Broadcaster.BroadcasterListener {
public TuClase() {
Broadcaster.register(this);
}
@Override
public void recibirBroadcast(String message, boolean value) {
}
}
- Debes Implementar el método recibirBroadcast()
- Remover también los objetos atachados a la lista por medio del Broadcaster.unregister(this);
Este no es el ejemplo definitivo pero te puede ayudar a tu implementación