Buon pomeriggio a tutti,
stavo studiando il pattern DAO, e girando x la rete è saltato fuori questo sorgente:
Come ben potete osservare all'interno di questa classe esiste un metodo statico che non fa altro che creare un oggetto di questa classe, ... come è possibile? Che io sappia non si può creare un'istanza di una classe astratta in quanto appunto presenta dei metodi astratti...codice:package it.un.sls.sampleproject.dao; public abstract class DAOFactory { // --------------------------------------------------------------------------- public static DAOFactory getDAOFactory(String whichFactory) { try { return (DAOFactory) Class.forName(whichFactory).newInstance(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } // --------------------------------------------------------------------------- public abstract AuthorDAO getAuthorDAO(); public abstract BookDAO getBookDAO(); public abstract PublisherDAO getPublisherDAO(); }
Mi date qualche input per favore?