desenvolvimento orientado a objetos
Caros Colegas,
Preciso desenvolver um sistema que utilizará banco de dados MySql, até aí tudo bem o meu problema maior é que tem que ser todo orinetado a objetos. Alguem tem algum exemplo de um projeto orientado a objetos, que possa me ajudar?
Um exemplo de um cadastro, onde seja mostrado como são criadas as classes e a vinculação dos objetos ao formulario e ao banco de dados, me ajudaria muito.
Toda ajuda é bem vinda, obrigado
Preciso desenvolver um sistema que utilizará banco de dados MySql, até aí tudo bem o meu problema maior é que tem que ser todo orinetado a objetos. Alguem tem algum exemplo de um projeto orientado a objetos, que possa me ajudar?
Um exemplo de um cadastro, onde seja mostrado como são criadas as classes e a vinculação dos objetos ao formulario e ao banco de dados, me ajudaria muito.
Toda ajuda é bem vinda, obrigado
Mfaria
Curtidas 0
Respostas
Tnaires
06/03/2004
Olá, antes d dar minha opinião, tenho duas perguntas:
1 - vc tá trabalhando com UML?
2 - qual linguagem vc pretende usar (essa resposta é meio óbvia...)?
Bom, basicamente, vc precisa criar uma classe para cada tabela q vc possui, onde cada campo é uma variável do tipo private, com um método Get (leitura) e um Set (escrita) para cada uma. E cada registro da tabela é uma instância dessa classe (ATENÇÃO: não tô dizendo q tem q ser assim, tou só dando uma idéia...).
No Delphi, isso fica desnecessário, pois existem vários componentes d conexão a banco d dados (BDE, ADO, etc). Esses componentes já encapsulam toda a lógica por trás do acesso a dados.
Usando uma ferramenta UML, vc pode criar um diagrama d classes (semelhante à criação de um diagrama d relacionamento d um banco d dados) e gerar o código para cada classe. Mas nunca vi uma ferramenta q gere em Delphi. Se vc quiser realmente implementar um modelo orientado a objetos num sistema, minha sugestão é: mude d linguagem - tente Java.
Abraços
1 - vc tá trabalhando com UML?
2 - qual linguagem vc pretende usar (essa resposta é meio óbvia...)?
Bom, basicamente, vc precisa criar uma classe para cada tabela q vc possui, onde cada campo é uma variável do tipo private, com um método Get (leitura) e um Set (escrita) para cada uma. E cada registro da tabela é uma instância dessa classe (ATENÇÃO: não tô dizendo q tem q ser assim, tou só dando uma idéia...).
No Delphi, isso fica desnecessário, pois existem vários componentes d conexão a banco d dados (BDE, ADO, etc). Esses componentes já encapsulam toda a lógica por trás do acesso a dados.
Usando uma ferramenta UML, vc pode criar um diagrama d classes (semelhante à criação de um diagrama d relacionamento d um banco d dados) e gerar o código para cada classe. Mas nunca vi uma ferramenta q gere em Delphi. Se vc quiser realmente implementar um modelo orientado a objetos num sistema, minha sugestão é: mude d linguagem - tente Java.
Abraços
GOSTEI 0
Mfaria
06/03/2004
É eu estou trabalhando com UML, e no caso da linguagem não tenho opção tem que ser Delphi.
para eu instanciar um objeto eu tenho que, necessariamente, declarar antes a variavel do tipo do objeto? Ou seja eu criei uma classe pessoa, mas não sei quantas pessoas vou instanciar como faço para criar a novas instancias?
Obrigado pelas sugestões.
para eu instanciar um objeto eu tenho que, necessariamente, declarar antes a variavel do tipo do objeto? Ou seja eu criei uma classe pessoa, mas não sei quantas pessoas vou instanciar como faço para criar a novas instancias?
Obrigado pelas sugestões.
GOSTEI 0
Tnaires
06/03/2004
É, para instanciar uma classe, vc precisa ter uma variável q armazene o endereço do objeto. Então, vc precisa escrever, no método construtor, as instruções que inicializarão o objeto.
Exemplo: vc tem uma tabela d pessoas
Pessoas
- codigo
- nome
- fone
- email
A classe para essa tabela seria assim:
Observe q com o construtor, vc pode inicializar o objeto com valores de codigo, nome e fone(assumindo q eles são os únicos campos da tabela q não aceitam valores nulos). Sua definição seria:
Self se refere ao próprio objeto, q será instanciado em tempo d execução (usei pq há variáveis d mesmo nome mas d escopo diferentes).
E na hora d instanciá-la, temos:
Uma vez, um professor meu me disse q um aluno dele achou uma ferramenta UML q gerava classes para Delphi. Desde então, tenho procurado mas não tenho achado. Acho q vou criar um tópico no fórum perguntando isso.
É isso, abraços
Exemplo: vc tem uma tabela d pessoas
Pessoas
- codigo
- nome
- fone
A classe para essa tabela seria assim:
type Pessoa = class private codigo: integer; nome, fone, email: string; public constructor Create(codigo: integer; nome: string; fone: string); function GetCodigo: integer; function GetNome: string; function GetFone: string; function GetEmail: string; procedure SetCodigo (codigo: integer); procedure SetNome (nome: string); procedure SetFone (fone: string); procedure SetEmail (email: string); end;
Observe q com o construtor, vc pode inicializar o objeto com valores de codigo, nome e fone(assumindo q eles são os únicos campos da tabela q não aceitam valores nulos). Sua definição seria:
constructor Pessoa.Create(codigo: integer; nome: string; fone: string); begin Self.codigo := codigo; Self.nome := nome; Self.fone := fone; end;
Self se refere ao próprio objeto, q será instanciado em tempo d execução (usei pq há variáveis d mesmo nome mas d escopo diferentes).
E na hora d instanciá-la, temos:
var p: Pessoa; begin p = Pessoa.Create(1, ´Eu´, ´1234567´); end;
Uma vez, um professor meu me disse q um aluno dele achou uma ferramenta UML q gerava classes para Delphi. Desde então, tenho procurado mas não tenho achado. Acho q vou criar um tópico no fórum perguntando isso.
É isso, abraços
GOSTEI 0
Mfaria
06/03/2004
Valeu !!!!!!
se puder me diga mais uma coisa.
Quando eu iniciar o cadastro, por exemplo, vou ter que fazer um for e inicalizar 1 objeto para cada registro da tabela?
Quanto a ferramenta tem uma ferramenta chamada Case Design Studio, que é integrada com o Delhi (até cria um menu dentro do delphi) diz gerar o código mas ainda não consegui gerá-lo, as tabelas do banco ela gera...
o endereço é [url]http://www.cdstudio.nack.com.br[/url]
Abraço
se puder me diga mais uma coisa.
Quando eu iniciar o cadastro, por exemplo, vou ter que fazer um for e inicalizar 1 objeto para cada registro da tabela?
Quanto a ferramenta tem uma ferramenta chamada Case Design Studio, que é integrada com o Delhi (até cria um menu dentro do delphi) diz gerar o código mas ainda não consegui gerá-lo, as tabelas do banco ela gera...
o endereço é [url]http://www.cdstudio.nack.com.br[/url]
Abraço
GOSTEI 0
Tnaires
06/03/2004
Bom, é q essa modelagem permite criar uma instância para cada registro, e não um conjunto de dados (result set). De tal maneira q um select retornaria um array d objetos, entende?
Os objetos do cadastro, vc vai criando à medida q for necessário, e uma vez gravados no banco, vc os desaloca da memória.
Beleza, vou dar uma olhada na ferramenta! Valeu.
Agora, tenho uma dúvida... Como vc pretende gravar os registros instanciados?
Abraços
Os objetos do cadastro, vc vai criando à medida q for necessário, e uma vez gravados no banco, vc os desaloca da memória.
Beleza, vou dar uma olhada na ferramenta! Valeu.
Agora, tenho uma dúvida... Como vc pretende gravar os registros instanciados?
Abraços
GOSTEI 0
Mfaria
06/03/2004
Eu pensei em criar uma super classe para executar tal tarefa, por exemplo ter um metodo ´gravar´ que executa uma SQL e grava os dados no banco. Alguma sugestão melhor :?:
Abraço
Abraço
GOSTEI 0
E_gama
06/03/2004
Conhecí um forum recentemente que trata justamente desse assuntto.
[url]www.oodesign.com.br[/url]
[url]www.oodesign.com.br[/url]
GOSTEI 0
Tnaires
06/03/2004
E como vc executaria as instrucoes SQL no banco? Nunca imaginei fazer isso no Delphi sem as paletas d conexao a banco d dados...
e_gama, o forum e otimo!! Tem coisa d+ sobre OO. Inclusive, vou citar algo q encontrei por la:
(Adaptado do post do usuario Ronaldo, do Forum [url=www.oodesign.com.br]OODesign[/url])
Eh galera, tenho muito estudo aih pela frente!!
Abracos
e_gama, o forum e otimo!! Tem coisa d+ sobre OO. Inclusive, vou citar algo q encontrei por la:
Eh difícil de implementar a orientação a objetos no Delphi, pois ele traz um modelo (o RAD da versão 1 a 6) que faz o contrário da orientação a objetos. (no delphi 7 arquitecht, o BOLD é uma boa notícia para OO em Delphi).
(Adaptado do post do usuario Ronaldo, do Forum [url=www.oodesign.com.br]OODesign[/url])
Eh galera, tenho muito estudo aih pela frente!!
Abracos
GOSTEI 0
Tnaires
06/03/2004
(...) O Bold contém uma paleta (Bold Controls) que possui vários componentes para serem ligados diretamente aos objetos (BoldNavigator, BoldCheckBox, BoldGrid. (...)
(post do usuario Ronaldo, do forum )[url=www.oodesign.com.br]OODesign)[/url]
E ainda tem esse [url=http://www.oodesign.com.br/forum/index.php?showtopic=83&hl=]link[/url] aqui.
Abracos
GOSTEI 0
Tnaires
06/03/2004
E pra finalizar, [url=http://www.oodesign.com.br/forum/index.php?showtopic=19&hl=]um exemplo[/url]
Abracos
Abracos
GOSTEI 0
Mfaria
06/03/2004
Galera valeu pelas dicas...
Estou vendo que para trabalhar totalmente OO em Delphi usando BD não é moleza....
Um abraço
Estou vendo que para trabalhar totalmente OO em Delphi usando BD não é moleza....
Um abraço
GOSTEI 0
Tnaires
06/03/2004
Beleza, não se esqueça d informar nosse tópico o andamento do seu sistema! Seus progressos, etc., pra q a gente possa ajudar.
Sucesso
Sucesso
GOSTEI 0