Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maykonn

Value Object

Recommended Posts

Quando trabalhamos com VO(Value Object), nelas informamos gets e sets de cada campo da tabela da respectiva VO.

Mas, caso seja necessário adicionar um novo campo na tabela no banco de dados, será preciso adicionar seu get e set na VO da tabela.

E isso eu não acho vantajoso.

 

A dúvida é:

Como trabalhar com VO sem precisar, toda vez que alterar a tabela, ter de alterar a VO também?

Factory? Como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

acredito que a resposta, esteja nos métodos mágicos:

__set() e __get()

Compartilhar este post


Link para o post
Compartilhar em outros sites

acredito que a resposta, esteja nos métodos mágicos:

__set() e __get()

 

Pois é, estive pensando neles também, porém, não me lembro quem, mas me disseram que existem alternativas que sobrecarregam menos o sistema. Ainda não utilizei esses métodos, então surge uma nova dúvida:

 

Eles deixam o sistema mais lento?

Se sim, qual outra alternativa?

Se não, existe alternativa melhor? Por exemplo, trabalhar com Factory para deixar bem desacoplado?

 

Se for Factory? Alguém poderia dar um "empurrãozinho"?

^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo como o Factory, você vai ter que alterar de qqr jeito o instanciamento do objeto.

 

Quanto a sobrecarregar o sistema, os métodos mágicos não influenciam o desemprenho de forma significativa, estão lá pra isso mesmo: pra facilitar, sem quebrar os conceitos de OO.

Infelizmente esse é um trabalho 'braçal' que inevitavelmente temos que fazer.

 

Estou refazendo meu 'framework' no momento, querendo criar uma base completa de trabalho para que não precise me preocupar depois, procurando usar o máximo de padrões possível.

Por hora, estou num impasse justamente com o VO.

 

Gostaria de automatizar a validação e o filtramento de dados que entram e saem do banco de dados. Tá difícil achar um jeito que funcione para todos os casos... =/

 

Mas quanto à sua dúvida, creio que não tem jeito mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já penso diferente. Penso que usar os métodos mágicos influenciam SIM na performance.

 

Pense naqueles sistemas de karaokê ridículos onde uma bolinha vai pulando sobre as palavras para te ajudar com o compasso da música.

 

Agora transporte essa bolinha para programação. A bolinha seria a requisição de um métodos:

 

Classe que Usa X() http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Classe que define o possui X()

Aqui a "bolinha" da nossa invocação pulo uma vez apenas.

 

Agora:

 

Classe que Usa o X() http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Classe com tudo, exceto X(), mas tem __call() http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Outra classe, com X()

Aqui, a "bolinha" de invocação pulou duas vezes, o que poderia fazer o script ficar 0.00001 segundo mais lento.

 

Ohhhhhhhhh!!!! Quanta coisa!

 

Agora imagina essa micro-lentidão envolvida com banco de dados numa aplicação sendo acessada por centenas de pessoas ao mesmo tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.