ok.. non avevo capito....
resta qualcosa che mi sfugge cmq....
Tu a quanto ho inteso devi leggere da qualche parte questa stringa /file .. quel che è e in base ad un token istanziare l'oggetto appropriato....
Allora.. avrai un Reader / Parser(se xml) che recupare la stringa o il file, interpreta il token e genera l'oggetto.
Event ev = new ConcreteEvent(stringa).
A questo punto la classe astratta Event resta uguale centralizzando la costruzione, mentre la classe concreta sarà del tipo corretto.
i costruttori devono essere modificati per ricevere come parametro la stringa o .. meglio i token visto che li hai già creati nel reader.
mi sono perso qualcosa?