Modelagem OO x Modelagem Relacional

6 respostas
B

Oi Pessoal,

Considere o seguinte:

Uma “Pessoa” acessar várias "Empresa"s assim com uma “Empresa” é acessada por vários "Pessoa"s. Temos um relacionamento n para n.

Em um banco de dados, temos uma terceira tabela (associativa) que mantém as PK das duas tabelas (Pessoa e Empresa).

Considerando que primeiro eu instancio um objeto “Pessoa”, como seria esta relação em um mundo orientado a objetos? Teríamos um array de "Empresa"s dentro da classe “Pessoa” (1 para n) ou temos uma classe associativa (n para n)?

Abraços

6 Respostas

F

tenta criar um array publico e estatico de "Empresa"s em uma terceira classe…

dai para uma “Pessoa” acessar uma “Empresa” basta acessar diretamente pela outra classe…

espero ter ajudado…

B

Eu tenho um pouco de dificuldades quando trata-se de relacionamentos n para n na POO.

Acho que eu imagino muito o mundo relacional no lugar do OO e acredito que isto esteja atrapalhando…

Existe alguma regra padrão que ajude a tratar estes casos?

abraços

J

“bscpaz”:
Oi Pessoal,

Considere o seguinte:

Uma “Pessoa” acessar várias "Empresa"s assim com uma “Empresa” é acessada por vários "Pessoa"s. Temos um relacionamento n para n.

Em um banco de dados, temos uma terceira tabela (associativa) que mantém as PK das duas tabelas (Pessoa e Empresa).

Considerando que primeiro eu instancio um objeto “Pessoa”, como seria esta relação em um mundo orientado a objetos? Teríamos um array de "Empresa"s dentro da classe “Pessoa” (1 para n) ou temos uma classe associativa (n para n)?

Abraços

O que vc pode fazer, é o seguinte: Como uma pessoa pode conter (não acessar) várias empresas, então a classe Pessoa terá uma lista de Empresas (referências de objetos Empresas). A classe Empresa tb vai ter uma lista, só que de Pessoa.

É isso ai…

T

Bom... eu concordo + com a solução do JavaTeco... mesmo assim vou tecer minha opinião... axo assim.... algo mais ou menos assim

A classe Pessoa tem um java.util.Vector private... bom além disso vc pode fazer métodos estaticos para buscar um Pessoa no vector... esse métodos são publicos...

O mesmo vc faria para as Empresas... ai vc teria algo + ou menos assim

import java.util.Vector;
public class Pessoa {
   private static Vector pessoas = new Vector();
   public Pessoa() {
      pessoas.add(this);
   }
   
   public static Pessoa getPessoa(int index) {
       return (Pessoa)pessoas.get(index);
   }
}

ai vc pode criar métodos para pesquisar as pessoas... mudar o método que esta ai... ou mesmo retornar a lista de pessoas enteira... ai é com vc... =]

mas eu faria assim axou eu

B

Oi pessoal,

Interessante o ponto de vista!!!
Quando estava modelando, eu imaginava em criar uma classe associativa entre as classes “Pessoa” e “Empresa” (algo do tipo relacional com o banco de dados).

Teve outro momento que pensei em colocar apenas um vetor na classe “Pessoa” considerando um objeto “Pessoa” instanciado. Daí representei um relacionamento (1…n, ou seja, uma “Pessoa” acessa várias "Empresa"s) sem considerar o outro lado.

A sugestões de vocês serão oficializadas no meu projeto, propagando um vetor para cada classe.

Muito obrigado.
Abraços
Bruno Paz

T

Só uma pergunta que não entendi… depois de anilasar… decediu fazer como??

“bscpaz”:
Oi pessoal,

Interessante o ponto de vista!!!
Quando estava modelando, eu imaginava em criar uma classe associativa entre as classes “Pessoa” e “Empresa” (algo do tipo relacional com o banco de dados).

Teve outro momento que pensei em colocar apenas um vetor na classe “Pessoa” considerando um objeto “Pessoa” instanciado. Daí representei um relacionamento (1…n, ou seja, uma “Pessoa” acessa várias "Empresa"s) sem considerar o outro lado.

A sugestões de vocês serão oficializadas no meu projeto, propagando um vetor para cada classe.

Muito obrigado.
Abraços
Bruno Paz

Criado 29 de março de 2004
Ultima resposta 31 de mar. de 2004
Respostas 6
Participantes 4