pra variar ando estudando pattersn e etc etc …
nao conhecia o conceito de Injeção de dependencias
minhas fontes,
http://www.javafree.org/content/view.jf?idContent=1
livro Patterns of Enterprise Application, Martin Fowler Plugins (499)
fiz esta simploria implementação,
e gostaria que dessem suas opinioes a respeito …
lembrando que a ideia é apenas eu descobrir se a essencia é essa mesma :oops:
package interfaces;
public interface IGenerico {
public void mostrarNome();
}
[code]
public class ClasseAlpha implements IGenerico {
public void mostrarNome() {
JOptionPane.showMessageDialog(null, "Classe Alpha");
}
}[/code]
[code]public class ClasseBeta implements IGenerico {
public void mostrarNome() {
JOptionPane.showMessageDialog(null, "Classe Beta");
}
}[/code]
[code]
public class AddPlugin {
private static Properties prop;
public static void load() {
prop = new Properties();
try {
prop.load(new FileInputStream("plugins.properties"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getProp(String key) {
String value = null;
value = prop.getProperty(key);
return value;
}
public static Object getPlugin(Class Iface) {
Object objeto = null;
String implName = prop.getProperty(Iface.getName());
if(implName != null) {
try {
objeto = Class.forName(implName).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
return objeto;
}
}[/code]
e finalmente,
[code]
public class Main {
public static void main(String[] args) {
AddPlugin.load();
ClasseTeste teste = new ClasseTeste(IGenerico.class);
teste.mostrarNome();
}
}[/code]
acho que é isso … :roll:
[…]s