Buon pomeriggio a tutti,
stavo studiando il pattern DAO, e girando x la rete è saltato fuori questo sorgente:
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(); }
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...
Mi date qualche input per favore?