MODULO X MODULO DE CLASSE

JORGESALES 05/07/2015 08:40:21
#448478
Pessoal eu enviei um projeto para um amigo e ele comentou
que eu havia colocado muita coisa no formulario, a única coisa que
coloco no Módulo é a conexão com o banco de dados.
Gostaria de saber qual é a diferença entre Modulo e Modulo de Classe
e se possível algum exemplo do que pode ser colocado em cada um deles
e porque seria melhor do que colocar no próprio formulario como eu venho
fazendo.
EPISCOPAL 05/07/2015 10:30:07
#448479
Resposta escolhida
O módulo serve para vc colocar funções públicas ...... tipo aquela EnviaTecla, pois todos os formulários utilizarão esta função. O problema que quando vc coloca uma determinada função no modulo, ao carregar o programa as funções de todos os modulos são carregados na memória, e ai o programa vai exigir mais memoria do computador.

Para evitar consumo de memoria é aconselhavel criar classes, mas deste que as funções sejam coerentes.
Ex: Se vc tem várias funções para trabalhar com forms, tipo colocar skin no formulario, bloquear o [Ô]X[Ô] do fechar o form, Colocar o canto do formulario arredondado, deixar o formulário transparente, etc ..... tudo relativo a formulario.

Vamos dizer que vc tenha uma classe por nome cEffectForm, e nela contem todas as funções acima citada.

Para utiliza-la vc deve fazer assim
dim EffectForm as new cEffectForm [ô]aqui vc cria uma instancia ou copia da classe
EffectForm.ColocaTransparenciaFormulario(Me) [ô]aqui vc executa a função da classe no seu form
Set EffectForm = nothing [ô]aqui vc destroi a classe pois nao ha mais necessidade dela, liberando memoria ao computador

vou postar um exemploooo
EPISCOPAL 05/07/2015 10:44:56
#448481
a classe tambem serve para encapsular (esconder) o conteudo das classes.

Evitando muito codigo nos formularios, como disse quando vc carrega o programa, o que ta no form e no modulo e carregado tudo na memoria do computador, com a classe so e carredo somente quando vc instancia a classe ...


imagine uma enorme função, digamos umas 5000 linhas de codigos, no seu formulario?
a hora que vc carrega o formulario vc gastaria memoria, e ao descarregar o formulario liberaria memoria,
se for no modulo iria ocupar memoria ate vc encerrar o programa.


Então ao criar seu programa pense bem.
1 - Utilize classes
2 - Formularios
3 - Modulos

Sempre nesta sequencia .... será que fui claro?
JORGESALES 05/07/2015 19:22:00
#448483
Me diz uma coisa, o que muda se eu colocasse esses códigos em um módulo comum?
E se os colocasse no próprio formulario (como sempre faço)?
MaIs uma vez aproveito para agradecer pela grande ajuda que tens me dado.
Deus te abençoe grandemente...
TUNUSAT 05/07/2015 21:36:58
#448485
JORGESALES,

Se você quiser fazer uma separação bem legal, utilize também [Ô]camadas[Ô] em seu sistema.

* DAL - Data Acess Layer - Camada de acesso ao banco de dados.
-------------------------------------------------------------------------------
Tutorial 1: Creating a Data Access Layer
https://msdn.microsoft.com/en-us/library/aa581776.aspx
-------------------------------------------------------------------------------

* BLL - Business Logic Layer - Camada da Regra de Negócios do Sistema.
-------------------------------------------------------------------------------
Tutorial 2: Creating a Business Logic Layer
https://msdn.microsoft.com/en-us/library/aa581779.aspx
-------------------------------------------------------------------------------

* UI - User Interface - Interface do usuário trata somente da visualização dos formulários para o usuário.
-------------------------------------------------------------------------------
Designing a User Interface (Visual C#)
https://msdn.microsoft.com/en-us/library/ms173080(v=vs.90).aspx
-------------------------------------------------------------------------------

* Model - Modelo da base de dados para uma comunicação entre as camadas.

Veja em:
-------------------------------------------------------------------------------
VB - Criando uma aplicação em 3 camadas
http://www.macoratti.net/vb_3cam.htm
-------------------------------------------------------------------------------

[][ô]s,
Tunusat.
EPISCOPAL 05/07/2015 23:03:07
#448489
Citação:

Me diz uma coisa, o que muda se eu colocasse esses códigos em um módulo comum?



Nada ... apenas consumo de memória como disse ......... antigamente os vbmaniacos usavam só ele, depois eles descobriram o poder das classes

Citação:

E se os colocasse no próprio formulario (como sempre faço)?


Se for pra escolher entre um e outro, melhor no formulario.

A classe veio na versão 4 ou 5 do VB. Antigamente todos colocavam codigos no modulo ou formularios.
A classe veio atender a base de programação a objetos, mas o vb6 não atende todos os requisitos.

Vamos supor que vc tenha 5 formularios, e que dentro vc tenha uma mesma função em todos os formularios. Se houver uma mudança na função, vc teria que corrigir a mesma função nos 5 formularios. Se utilizar a classe ai vc vai fazer isso so uma vez. Apesar que poderia utilizar um modulo tambem ...... mas a classe fica mais organizada.

Lembre-se com o exemplo que citei ..... se vc tem função que tenha o mesmo genero então e melhor utilizar classe. A classe ajuda enchugar codigo dos formularios.


Leia isso pra entender o poder das classes

http://www.macoratti.net/vb56_oop.htm

http://www.macoratti.net/vb_class.htm
http://www.macoratti.net/vbn_ccco.htm
http://www.macoratti.net/net_ica1.htm
Tópico encerrado , respostas não são mais permitidas