“Cabeca_cl”:
Ola pessoal, estou aqui procurando uma ajuda pois estou querendo aprender o [size=“18”][color=“red”]Padrão Factory[/color][/size], mais não acho algo simples e objetivo, sem muita enrolação mais sim, fácil de entender ate mesmo com exemplos práticos e exercicios.
Valeu pela força
[/quote]
O padrão factory (Fabrica) relaciona-se à boa prática de declarar variáveis usando interfaces e não classes. Por exemplo:
List listadeProdutos = …
e não
ArrayList listadePordutos = …
Se usamos interfaces, muitas classes podem ser usadas como objeto real. Por exemplo, para List temos ArrayList e LinkedList. Como decidir ?
Usando um Fabrica.
Uma fabrica, como o nome indica , fabrica objetos de uma certa interface. Por exemplo:
List listadeProdutos = FabricaDeProdutos.getProdutos();
Aqui vemos o uso de uma fabrica. O corpo de uma fabrica é constituído de um método publico e estático cujo retorno é uma interface. Internamente o método decide que objeto retornar.
Neste exemplo, a fabrica decide também quais produtos estão na lista, mas isso não é o objetivo do factory. O objetivo é isolar a criação de objetos que satisfazem uma interface. Teoricamente todos os new deveriam estar num Factory.
O método da fabrica pode ter parâmetros , por exemplo
DAO dao = DAOFactory.getDAO(“sqlserver”);
Aqui criamos um DAO que comunica com o sqlserver. A classe que implementa essa funcionalidade nós na temos que saber ao escrever o código acima. É o implementador da fabrica que decide isso.