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 :
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 !
, 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 .