DÊVIDA SIMPLES SOBRE ORIENTA?ÃO A OBJETOS

MARCOS 26/12/2015 20:35:26
#455553
Bom dia,Colegas!
Minha dúvida é simples.
Em um dos vídeos(Excelentes), que o colega Kerplunk, disponibilizou no Youtube,
Ele cita que uma boa prática em projetos orientados a objeto, é criar um projeto
separado para as classes.Achei interessante,mas como não gosto de fazer nada
sem compreender o motivo,peço a orientação dos colegas :

1.) Posso adotar esta prática,como boa prática para os projetos OO ?

2.) Criar uma simples pasta no projeto para as classes tem o mesmo efeito,ou existem motivos para que
a criação de um projeto separado seja melhor ?

3.) Na prática, este projeto separado para as classes,seria um projeto simples sem nada,somente com as classes dentro.Ou tem
um modo diferente de criar o mesmo?


Agradeço qualquer orientação
KERPLUNK 26/12/2015 21:10:59
#455554
Resposta escolhida
Bem, vamos lá:
1 - Sim, é o ideal. Separar as classes em um projeto diferente é o que se deve fazer.
2 - Não é ideal simplesmente criar uma pasta. Os motivos são simples: Criando um projeto separado para suas classes, faz com que esse projeto(uma biblioteca de classes) possa ser reaproveitado como referência em qualquer outro projeto, como uma aplicação desktop, web e até mesmo uma webAPI.
3 - Esse projeto separado é uma biblioteca de classes(Class Library) e não costuma ter nada além do necessário para que todas as funcionalidades dela sejam utilizadas. Isso cria um desacoplamento completo entre camadas de integração com banco de dados, regras de negócio e UI.

Qualquer dúvida, pode postar lá no youtube mesmo que vou respondendo. O bacana é que elas aparecem na hora pra mim aqui e por isso a chance de eu responder na hora é muito grande.

Abraço! E obrigado pela audiência!
KERPLUNK 27/12/2015 00:20:50
#455556
Assista toda a série que vai ficar mais claro o porque.
NICKOSOFT 27/12/2015 09:20:23
#455557
veja pelo q uso no dia a dia, tenho uma classe bem genérica q faz conexão com o banco/fecha recebe a query e os parâmetros e os processa ao banco, retornar dataset, esse é um projeto q gera uma DLL q posso usar em vários projetos, se fosse apenas uma pasta, teria q toda hora copiar a pasta toda, importar referencias em qq novo projeto.....ai basta eu importar a referencia a essa DLL minha....
MARCOS 27/12/2015 15:02:04
#455560
Boa tarde,Kerplunk!
Eu entendi e pretendo adotar esta prática nos próximos projetos.
Mas,como nunca fiz na prática,estou ainda com as seguintes dúvidas:

1. Este projeto para colocar as classes (Do tipo Class Library), eu devo criar dentro da mesma [Ô]Solution[Ô] onde
esta meu projeto principal ? (Ou para ser reaproveitada,por outros projetos tem de ficar fora da solution )

2. Todas as classes de um projeto (Sem exceção),devem ficar neste projeto separado ? (Inclusive a de acesso ao SGBD) ?

3. Instanciar uma classe,dentro de um mesmo projeto é simples. Instanciar este projeto de classes separado, é complicado ,ou a sintaxe é a
mesma ?

Agradeço,qualquer orientação
KERPLUNK 27/12/2015 17:07:42
#455561
1 - Tanto faz, ser na mesma solution ou não. O caso é que você deve adicionar a referência dela no projeto em que quer usar a biblioteca.
2 - Não é bem assim. O seu projeto biblioteca, deve conter as classes que a biblioteca se propõe a fazer. Você pode ter uma biblioteca para persistência de dados, outra para regras de negócio, outra para consumir um determinado WebService, enfim, separar cada coisa em projetos separados, faz com que você tenha versatilidade para reaproveitar a mesma biblioteca em projetos diferentes. Todas as classes, seria impossível, porque um form é uma classe, uma aplicação console, é uma classe, tudo no .NET é uma classe ou oriundo de uma classe.
3 - é a mesma coisa. Uma vez referenciada a classe no projeto, basta declarar usando o caminho namespace e nome da classe e usar.


Assista todas as aulas no meu canal que lá eu mostro isso, inclusive usando a mesma biblioteca para um projeto windows form e outro console.
MARCOS 28/12/2015 09:50:20
#455570
Obrigado,Kerplunk!
Estou assistindo as aulas e incorporando as boas práticas aos meus projetos medida que vou aprendendo.
Tópico encerrado , respostas não são mais permitidas