Isso sem encaixa em algum padrão?

3 respostas
R

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

3 Respostas

R

só mais uma coisa …
o Pattern Plugin, descrito no livro do Fowler é a mesma ideia da injeção de dependencias??

[…]s

cv1

Nao… da uma lida nesse artigo:

R

é o mesmo link amigo, :frowning:

em ingles,
http://www.martinfowler.com/articles/injection.html

em portugues,
http://www.javafree.org/content/view.jf?idContent=1

Criado 9 de janeiro de 2007
Ultima resposta 9 de jan. de 2007
Respostas 3
Participantes 2