Factory

Olá!

Alguém conhece empresas que usam o padrão Factory e que eu possa citar o nome em um trabalho?

:slight_smile:

Grata,
Maria Ane,
Att,

Pergunta complicada essa, heim?

É como perguntar empresas que usam i++ e que usam ++i. Acho que você precisa entender melhor o que é um pattern… :roll:

De qualquer modo, se você pensar que java usa factories, qualquer uma vai usar.

Shoes

O problema de criar classes via factory é que essas classes devem ficar no mesmo pacote do factory (ou não ?)

ex:


public class FuncionarioDAO {
  FuncionarioDAO() {}
  // não pode ser public pois as classes clientes podem inicializar a classe sem o factory
}

public class DAOFactory {
   public FuncionarioDAO getFuncionarioDAO() {
      return new FuncionarioDAO();
   }
}

FuncionarioDAO f = daoFactory.getDAOFactory();
//
não poderia
FuncionarioDAO f = new FuncionarioDAO();

EDITADO:
Gostaria de aproveitar o tópico para tirar esta dúvida

gente, só gostaria de saber se alguma empresa como Ford, Motorola, Empresa do Tio Zé, Pirelli, InfoNews, etc… usa Design Patterns e se ela tem um artigo, ou existe algum artigo na internet que fale sobre esta utilizacao…

:smiley:

será que existe?

muito grata,
Maria Ane,
Att,

Provavelmente não, mas você pode dizer que a Sun, a IBM, a Microsoft, usam o padrão factory.

nada a ver

Daniel tenho essa dúvida, como poderia resolver.
Para deixar as classes instanciadas pela factory fora do pacote dela eu teria que deixar o construtor public.
Mas ai eu poderia instanciar essas classes pelos clientes sem usar a factory.
:roll:

[quote=jprogrammer]Daniel tenho essa dúvida, como poderia resolver.
Para deixar as classes instanciadas pela factory fora do pacote dela eu teria que deixar o construtor public.
Mas ai eu poderia instanciar essas classes pelos clientes sem usar a factory.
:roll: [/quote]

Mas você não vai fazer uma coisa feia dessas vai?

Mesmo com o contrutor private uma classe pode ser instanciada, usando engenharia de bytecode ou “inner types” do AspectJ.

Acho que um setAccessible já resolve, não?

valeuz…

[quote=jprogrammer]EDITADO:
Gostaria de aproveitar o tópico para tirar esta dúvida[/quote]

jprogrammer,

Nao querendo ser chato, mas seria muito melhor se tu tivesse criado outro topico. Facilita para busca num futuro proximo quando alguem precisar.

]['s

É verdade desculpa…
Fiquei com trauma do pessoal que estava criando new topic toda hora e fiquei com vergonha, mas na verdade foi ao contrário.
:oops:
Se o moderador quiser fazer isso seria melhor.

Voltando ao assunto:

Aqui na ThoughtWorks a gente procura usar patterns para resolver a maioria dos problemas aplicaveis. Como fica meio dificil dizer que a gente usou isso ou aquilo no projeto tal, mas ja que o Martin Fowler trabalha aqui, fica facil apontar pro site dele :wink:

No mais, vc pode olhar pras APIs publicas de empresas como Sun, IBM, Oracle e BEA e procurar por factories. Certeza que vc encontra duzias - nas APIs de XML do proprio Java, por exemplo.