Fórum Classes: quando criá-las? #192350
02/11/2003
0
Sou novo por aqui, e apesar de já ter mexido bastante com o TP e de estar me formando em Análise, tenho algumas dúvidas ´filosóficas´ a respeito de classes.
Pelo que já andei estudando no manual de Object Pascal da Borland, a coisa é realmente fantástica, ou seja, você pode fazer virtualmente o que você quiser e as heranças ajudam bastante no sentido de moldar as classes já existentes.
No que diz respeito à utilização das classes já prontas não há muito o que discutir: é óbvio que é o ideal. Mas... e quanto à criação de novas classes? Quando sabemos que devemos criar uma?
Por que pergunto isso? Vejam, quando estiver programando em OOP devo fazer TUDO com classes? Ou aquilo que puder ser resolvido com uma função deve ser usado como função? Eu não estou conseguindo visualizar o limiar que divide a programação estruturada da programação orientada a objetos, uma vez que o Delpih suporta os dois estilos.
Quando estiver programando em OOP a utilização direta de procedimentos e functions é algo errado ou obsoleto? Ou seja, só devo utilizar procedimentos e funções dentro de classes e chamá-los na forma de métodos? Ou isso ainda é uma questão discutível e depende de estilo de programação?
Em certas linguagens como Java, por exemplo, a própria estrutura da programação força você a fazer tudo através de classes pois a linguagem não suporta a chamada direta à funções (eu acho, não tenho certeza, estou aprendendo Java na faculdade ainda - me desculpem se estiver falando besteira). Mas, o Delphi permite tanto uma forma como outra, e então como saber o que é mais certo fazer?????
Perceberam onde está minha confusão???? Alguém me disse uma vez que se eu usar o Delphi sem ser 100¬ em OOP, não estarei programando em Delphi, mas sim em Turbo Pascal usando apenas os recursos visuais do Delphi. Já numa apostila de Object Pascal da UFRJ, o autor diz que criar classes para utilizar em apenas uma aplicação (se você não pretende reusá-la) é perda de tempo, e neste caso, deve-se preferir funções ou procedimentos. Isso procede, vocês concordam????
Obrigado pela atenção!
Yan Kleber de Moura
Yankleber
Curtir tópico
+ 0Posts
02/11/2003
Edilcimar
Gostei + 0
02/11/2003
Yankleber
Grato pela sua mensagem, mas acho que você não captou o ´X´ da questão!
Minha dúvida não é a respeito de [i:66a1111af9][b:66a1111af9]COMO[/b:66a1111af9][/i:66a1111af9] criar classes, mas sim [i:66a1111af9][b:66a1111af9]QUANDO DEVO[/b:66a1111af9][/i:66a1111af9] criá-las.
Obrigado assim mesmo!
Yan Kleber de Moura
Gostei + 0
02/11/2003
Edilcimar
Gostei + 0
02/11/2003
Beppe
Antes de escrever uma classes nova, você precisa saber de umas coisas. O Delphi permite e até estimula(olha em SysUtils.pas) a escrita de funções externas às classes. Mas uma idéia de OOP presente(mas bem como eu gostaria) no Delphi é modularização e ocultamento de informações(ops, são duas). Tipo, a classe esconde os dados que estamos trabalhando e necessitamos apenas a interface(os métodos). Você não precisa fazer uma classe que contenha um método que apenas verifique se o número do CPF está bem formado. Mas pode escrever uma classe que localize continuamente strings em outras com um motor de busca, com opção de compilar a pattern para agilizar esta pesquisa.
Criamos classes para evitar que quem usará elas fique criando variáveis para armazenar informações temporárias de uma função, ou melhor, um grupo de funções esteja utilizando.
Criar e usar classes é uma arte, como perceberá. Não existe um chavão: ´Use com moderação´. Nem para funções nem para classes.
Ataliba
Gostei + 0
03/11/2003
As-mad
Gostei + 0
03/11/2003
Yankleber
As respostas estão realmente agora chegando perto do que eu precisava saber, e tudo começa a ficar mais claro.
A questão que me levou a iniciar esse tópico é aquela velha idéia de que nem todas as vezes que você tem uma ferramenta à sua disposição você tem que necessariamente usá-la. Tipo, não é porque você tem um serrote, que vai sair procurando alguma coisa para serrar na sua casa: você só vai usá-lo se realmente tiver que serrar alguma coisa.
É a mesma coisa com as classes: não é porque a linguagem (no caso o Delphi) permite a criação delas que você vai sair criando classes a torto e a direito, estou correto?
Acredito que compreendi o ´x´ da questão, e talvez cometa algumas gafes no início, mas depois irei me ajustando. É a primeira vez que irei realmente trabalhar com classes.
Sou programador em Visual Basic há algum tempo, e embora nunca tenha trabalhado com classes diretamente nele (a criação de classes no VB não é fácil e clara como no Delphi), já criei componentes OCX (que não deixam de ser classes, uma vez que possuem métodos e propriedades e têm como objetivo o encapsulamento e ocultamento de informações bem como a instanciação do componente para sua reutilização).
Achei o exemplo do CPF muito apropriado. Eu, por exemplo, tenho uma função que cria chave primária, onde você passa o nome da tabela, o nome do campo que contém a PK e o tamanho da chave que você quer. Puxa, isso pode ser muito bem feito por uma simples função, então por que criar uma classe????
É isso aí pessoal, mais uma vez muito grato!
Um abraço!
Yan Kleber de Moura
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)