Pripazi samo kad praviš tu factory metodu na činjenicu da parent klasa ne bi smela da bude svesna postojanja konkretne potklase. BTW, ako već praviš ORM da bi nešto naučio, Java je prilično loš izbor.
Nego, nisam siguran da ti je za to o čemu pričaš neophodna refleksija:
Kôd:
abstract class ModelBase {
public abstract String getTableName();
public String get() {
return "SELECT * FROM " + getTableName() + ";";
}
}
class Radnik extends ModelBase {
public String getTableName() {
return "radnici";
}
}
class Test
{
public static void main(String args[])
{
ModelBase radnik = new Radnik();
System.out.println(radnik.get());
/* SELECT * FROM radnici; */
}
}
Refleksija će ti trebati kad npr. ne budeš hteo da eksplicitno navodiš ime tabele u modelu, već želiš da od imena klase izvedeš ime tabele.