pra variar ando estudando pattersn e etc etc ...
nao conhecia o conceito de Injeção de dependencias
minhas fontes,
[url]http://www.javafree.org/content/view.jf?idContent=1[/url]
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();
}
public class ClasseAlpha implements IGenerico {
public void mostrarNome() {
JOptionPane.showMessageDialog(null, "Classe Alpha");
}
}
public class ClasseBeta implements IGenerico {
public void mostrarNome() {
JOptionPane.showMessageDialog(null, "Classe Beta");
}
}
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;
}
}
e finalmente,
public class Main {
public static void main(String[] args) {
AddPlugin.load();
ClasseTeste teste = new ClasseTeste(IGenerico.class);
teste.mostrarNome();
}
}
acho que é isso ... :roll:
[....]s
