GARANTIR DESCONTO

Fórum desenvolvimento orientado a objetos #218827

06/03/2004

0

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


Mfaria

Mfaria

Responder

Posts

06/03/2004

Tnaires

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


Responder

Gostei + 0

07/03/2004

Mfaria

É 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.


Responder

Gostei + 0

07/03/2004

Tnaires

É, 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:
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


Responder

Gostei + 0

08/03/2004

Mfaria

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


Responder

Gostei + 0

08/03/2004

Tnaires

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


Responder

Gostei + 0

09/03/2004

Mfaria

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


Responder

Gostei + 0

09/03/2004

E_gama

Conhecí um forum recentemente que trata justamente desse assuntto.
[url]www.oodesign.com.br[/url]


Responder

Gostei + 0

09/03/2004

Tnaires

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:
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


Responder

Gostei + 0

09/03/2004

Tnaires

(...) 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


Responder

Gostei + 0

09/03/2004

Tnaires

E pra finalizar, [url=http://www.oodesign.com.br/forum/index.php?showtopic=19&hl=]um exemplo[/url]
Abracos


Responder

Gostei + 0

09/03/2004

Mfaria

Galera valeu pelas dicas...

Estou vendo que para trabalhar totalmente OO em Delphi usando BD não é moleza....

Um abraço


Responder

Gostei + 0

10/03/2004

Tnaires

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar