Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Chiarimento su programmazio

    Ciao a tutti,
    ho un problemino con un sorgente Java, non riesco a capire che giri fa...
    Ecco le varie classi:
    codice:
    public abstract class EventSubscriber implements EventInterface { 	
       @SuppressWarnings("static-access") 	
       protected static final Properties CONSTANTS = Configuration.getInstance().constants; 	
       protected EventSubscriber() { 		
          EventManager.getInstance().subscribe(this); 	
       } 
    }
    poi una classe EventResource (parte di un webservice)
    codice:
    @POST 	
    @Path("/add")	 	
    @Consumes("application/xml")	 	
    public void createEvent(@PathParam("username") String userid, 			
              @CookieParam("sessionid") String sessionid, SingleEvent toAdd) { 		
       log.info("Request to create event from user " + userid + ", session "+ sessionid);
       EventManager.getInstance().createEvent(userid, toAdd);		 	
    }
    poi la classe EventManager che contiene, oltre ad altri metodi, anche:
    codice:
    public class EventManager extends Publisher<EventSubscriber> implements EventInterface {
    ...
       public boolean createEvent(String userID, SingleEvent toAdd){ 		
          for (EventSubscriber o : subscriberlist) o.createEvent(userID, toAdd);
          EventDatabase.instance.addEvent(userID, toAdd); 		
          return true; 
       }
       public static EventManager getInstance() {
          return InstanceHolder.INSTANCE;
       }
    ...
    }
    ed infine la classe Publisher:
    codice:
    public abstract class Publisher<E> { 
       protected List<E> subscriberlist;  	
       public Publisher(){ 		
          subscriberlist = new LinkedList<E>(); 	
       }
       public void subscribe(E subscriber) { 		
          subscriberlist.add(subscriber); 	
       }
       public void unsubscribe(E subscriber) { 
          subscriberlist.remove(subscriber);
       }
    }
    Da quello che ho capito, quando arriva una richiesta al webservice (al path indicato), la classe EventResource richiama
    codice:
    EventManager.getInstance().createEvent(userid, toAdd);
    quindi si fa restituire l'istanza creata dalla classe EventManager ed invoca su questa istanza il metodo createEvent sempre della classe EventManager.
    Tale metodo, ne ciclo for, crea un oggetto di tipo EventSubscriber per ogni elemento di subscriberlist (una linked list). Ma andando a vedere il costruttore di EventSubscriber
    codice:
    protected EventSubscriber() { 		       
       EventManager.getInstance().subscribe(this); 	    
    }
    Cosa significa this?? Come funziona? Da quello che conosco serve per identificare una istanza di un oggetto creato? Come funziona il construttore di EventSubscriber? Si autocostruisce?

    Ciao e grazie a tutti!!!!

    Alessio

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    466
    Java ha una sezione a parte, verrà spostato..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.