Dica sobre Factory de instancias

E o seguinte estou desenvolvendo uma aplicacao em que para uma rotina sao usados modelos , esses modelos sao arquivos salvos em um diretorio em que o programa sempre verifica como se fosse plug-ins !

No inicio do programa a classe factory le todos esses arquivos e guarda uma intancia para cada um .

Gostaria de uma ajuda de voces , para o seguinte :

Antes eu estava fazendo assim , eu guardava o nome do modelo E uma referencia do obejto File
em um HashMap , entao sempre que que um modelo é requisitado , ele faz uma nova instancia do modelo (o contrutor dele recebe um File ) , e devolve essa instancia !

Mas eu não gostei muito , achei que ficou meio "gambiarra " .

Então decidi , ja instanciar todos os modelos e guardar essas instancias , entao quando requisitada
eu uso o .clone() pra retornar uma instancia .

Eu sei que pode parecer meio bobo , mas esse negocio ai vai influenciar muito em questao de desepenho , pois dependendo da quantidade de modelos , pode acontecer lentidao . E pra falar a verdade eu nao sei se estou empregando bem o conceito :

E se é realemente disso que eu preciso !

Não vejo necessidade de fazer um .clone do objeto faça apenas um método que retorna a instancia, caso ela não tenha sido isntanciado ainda instancie ela

por ex.:


public Object factoryMethod() {
  if(objeto == null) {
    objeto = new Object();
  }
  return objeto; 
}

Você altera os modelos? Aliás, que tipo de modelos são?

Se não altera, pode seguir a dica do Naruffy e retornar o próprio modelo, ao invés de um clone dele. Isso pouparia memória, já que vc não irá duplicar objetos desnecessariamente.

Agora, se você altera os modelos, então a forma que você fez está certa.

No meu caso entao acho que vai ser melhor o clone entao , to ligado no que o Naruffy , é mais tipo um singleton , neh ?!

Sofre alteração sim ! oque eu chamo de modelo , e na verdade um arquivo com algumas informacoes a respeito de padroes , coisas como , Tipo de randomizacao , tamanho do campo randomizado , prefixo , sufixo , nome …

Pois nessa parte do programa ele vai gerar , algumas infos , embora seja random elas precisam seguir um padrão !
Ai tem a disposicao uma lista de modelos pre definidos … Valeu aew galera mais uma vez pelas ideias !

Só uma curiosidade. Os clones são uma implementação do pattern Prototype.

tem uma dicas de Fowler veja.

Já cogitou o uso de Aspectos?

:wink: , Viajei na definição da pattern Factory , è a a Prototype sim que estou implementando !
è porque a classe faz meio que um gerenciamento dos tipos de instancia que ela retorna , só que essa
decisão é tomada ativamente pela classe solicitante , além de não haver classe abstrata , ou seja
não há Factory nesta implementação ( A qual eu achava que estava usando ) !
Mas ta tranquilo neh ? acredito que eu vá economizar mais memoria do que se fosse ficar fazendo
novas instancias pra retornar .

Hmm ! valew kra , eu tenho uns links aqui com conteudo parecido , facilita muito em algumas soluções de
problemas rotineiros !

:lol: Na minha cabeca AOP ainda é abstrato !
So tenho um pouco do conhecimento teórico !
Nunca tive a audacia de implementar . kk AOP me assusta …
E também acho que os meus modelos não requerem algo tão bem elaborado !

Vou deixar AspectJ mais pra frente , talvez eu tente usar pro tratamento de erros ,
mas ae qualquer coisa eu recorro aos cumpade aqui do GUJ , pra me dar uma luz .
:smiley: