COMO SABER OS MODULOS NECESSARIOS

JALEXM 14/11/2012 14:44:05
#414213
Citação:

Poxa cara, agora acho que vc exagerou. Uma classe define um objeto que possui estado e comportamento e blá blá blá que vc já sabe. Não é pra ficar declarando constante ali. O que acaba acontecendo em outras linguagens como C# e Java no uso de métodos e atributos static vai contra os princípios da POO, paradigma em que a linguagem foi designada.

No VB6 vc pode emular o uso da classe pra isso que vc descreveu usando propriedades e carregando os valores no construtor da classe.



Na verdade, o uso das constantes dentro da classe seria apenas para indicar nomes significativos para erros gerados dentro da classe. Por exemplo, se um método da classe gerar um erro de data inválida, eu faria algo do tipo Err.Raise ERRO_DATA_INVALIDA.

Esse erro seria capturado por quem estivesse chamando o método da classe, geralmente um procedimento ou função em algum outro form/módulo/classe. Então, ficaria mais claro dentro desse outro form/módulo/classe usar algo do tipo if Err.Number = ERRO_DATA_INVALIDA then blá, blá, blá do que if Err.Number = 1468 then blá, blá, blá.

No VB6 isso não é possível, então temos que criar um outro módulo para compartilhar as constantes e ficar documentando dentro dele que as constantes A, B, C pertencem à classe C1, enquanto as constantes X, Y, Z pertencem à classe C2 e por aí vai. O mundo não vai acabar por causa disso, mas seria mais interessante incluir as constantes de erro próximas ao código que os podem gerar. Facilita o entendimento, a manutenção e ajuda o encapsulamento. Bom, pelo menos, eu penso assim.
LLAIA 14/11/2012 16:23:24
#414230
Agora foi mais claro.

Não sei se estou pensando besteira (até gostaria de tentar implementar aqui um exemplo pra ver se funciona mas não dá agora), mas será que se definíssemos uma Collection na classe com uma lista de todos os erros que estão definidos no Módulo como vc explicou, e na hora de testar o erro, em vez de comparar Err.Number com uma constante vc comparar com um item da Collection. Será que dá certo?
JALEXM 16/11/2012 08:02:24
#414305
Citação:

Não sei se estou pensando besteira (até gostaria de tentar implementar aqui um exemplo pra ver se funciona mas não dá agora), mas será que se definíssemos uma Collection na classe com uma lista de todos os erros que estão definidos no Módulo como vc explicou, e na hora de testar o erro, em vez de comparar Err.Number com uma constante vc comparar com um item da Collection. Será que dá certo?



Acho que apenas trocaríamos um problema por outro. Se a coleção de erros fosse ColecErros, e o erro de data inválida fosse o item 18 dessa coleção, então teríamos algo do tipo Err.Raise ColecErrors(18) para gerar o erro e para detectar o erro fora da classe teríamos if Err.Number = NomeDaClasse.ColecErros(18) then blá, blá, blá. Ou seja, teríamos que saber que o item 18 da coleção corresponde ao erro de data inválida. Então, não vejo uma solução fazendo dessa forma.

JABA 16/11/2012 12:00:00
#414333
Eu acho que o vb6 é bem limitado, mas dá para fazer projetos organizados com ele. Tudo depende do nível de abstração no entendimento do programador.

Apesar de não ser tão orientado a objetos quanto o vb.net, pelo menos ele possui alguns recursos interessantes, como classes e polimorfismo por exemplo.

O problema é que o pessoal do vb6 não manja muita coisa de OOP e isso acaba sendo pago com projetos mal planejados e organizados.

vlw
Página 2 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas