A classe endereço *NÃO* tem uma lista de todos os endereços existentes, ela tem um método que recebe um objeto Pessoa ou apenas o código dessa pessoa e efetua uma busca no banco para trazer o(s) endereço(s) que estiver(em) relacionado(s) à essa pessoa.
Quem tem uma lista (apenas uma lista) com um ou vários objetos Endereco é o objeto Pessoa. Ele solicitou à classe Endereco que fosse ao banco de dados e trouxesse todos os endereços que estivessem relacionados com ela. A classe Endereco por sua vez, faz a solicitação à camada de persistência que busca os dados, lê cada um dos registros recuperados, cria um objeto para cada endereço encontrado e popula a lista. Nenhum objeto deve ter acesso aos dados de outro objeto que não seja por solicitação direta. A exceção só existe para atributos públicos. Ou seja, se você precisa saber o endereço da Pessoa, pergunte à ela que ela pergunta ao Endereco e ele repassa a informação. Ex.: {Isso será feito no Formulário (Depois de populado o objeto)} Endereco := Pessoa.lstEnderecos.Items[i]; edtLogradouro.Text := Endereco.Logradouro; edtNumero.Text := Endereco.Numero; edtComplemento.Text := Endereco.Complemento; edtBairro.Text := Endereco.Bairro; ... Fiquei na dúvida do "... seu eu conhecer..." e vou deduzir o que seja para tentar explicar. Para saber o endereço da Pessoa você terá *OBRIGATORIAMENTE* que conhecê-la. Qual a finalidade de se ter um endereço cadastrado sem poder ter uma Pessoa associada à ele? Não existe, não é??? Nesse caso, quem fará uso do "Class Function ListaEnderecos(oPessoa: TPessoa): TList;" é o objeto Pessoa quando for criado e populado. Me fiz entender dessa vez? Caramba!!! Onde estão os autores de livros, mestrandos, doutorandos e experts em orientação a objetos que não opinam nessa thread? :-D Sds, Romario Francisco Trindade escreveu: > rs...sim, estamos nos entendendo. > Mas o que eu acho é que pessoa tem uma lista de instancias de endereco a > que ela esta associada, e nao que ela tenha que buscar isso em algum lugar. > A diferenca que eu vejo em nossas visoes, é que a sua (pelo menos ate onde > eu entendi) assume a existencia de um banco de dados, ou outra forma de > persistencia, ou no minimo, que a classe endereco tenha uma lista com todos > os enderecos existentes (mas dai eu nao entendo como um objeto endereco tera > a lista de todos objetos endereco) > Outra questao que vejo é a seguinte: > No caso de endereco ser uma propriedade privada de Pessoa, entao nenhuma > outra classe, mesmo que conheca Pessoa, podera ter acesso ao endereco. > Do seu modo, seu eu conhecer Pessoa e Endereco, poderei chamar a funcao > Class Function ListaEnderecos(oPessoa: TPessoa): TList > que terei o endereco da pessoa. > Concorda? > Sds, > Francisco > > > > On 11/17/05, Romario (Listas) <[EMAIL PROTECTED]> wrote: > >>Ops! Agora estamos começando a nos entender. (rsrs) >> >>Se essa é a sua visão atual, você conseguiu entender o que eu tentava >>explicar. >> >>Pessoa "conhece" a(s) instância(s) de Endereco porque ela fez uma >>solicitação à classe e recebeu como resposta essa(s) instância(s). >> >>Uma instância do objeto Endereco *NÃO* conhece as outras instâncias da >>mesma classe porque não existe ligação entre elas. Isso é uma afirmação. >> >>É dessa forma mesmo que está entendendo? >> >>Sds, >> >>Romario >> >> >> >> >>Francisco Trindade escreveu: >> >>>rs.. nao sei, mas eu continuo com a minha opiniao. >>>Uma instancia do objeto endereco deve saber tudo sobre ele, como >>>rua,numero,complemento,etc.. >>>mas quem conhece as instancias, sao os objetos que fazem uso delas, no >> >>caso >> >>>, a pessoa. >>>Mas uma instancia do objeto endereco nao deve conhecer as outras >>>instancias do mesmo, a nao ser nos casos necessarios. >>>Sds, >>>Francisco >>>On 11/14/05, Romario (Listas) <[EMAIL PROTECTED]> wrote: >>> >>> >>>>Francisco, >>>> >>>>A sua visão me parece estar um pouquinho distorcida. Ou será que é a >>>>minha??? (rsrs) >>>> >>>>Note que Endereco é um objeto e *TUDO* o que diz respeito à ele está >>>>dentro dele. >>>> >>>>Como sabemos que na OO as instâncias se comunicam através de mensagens, >>>>para que um objeto saiba alguma coisa a respeito de outro, ele precisará >>>>perguntar a esse outro. >>>> >>>>Trocando em miúdos, para que Pessoa saiba o endereço, ele precisará >>>>pedir ao objeto Endereco essa informação. >>>> >>>>Sds, >>>> >>>>Romario _______________________________________________________ Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o discador agora! http://br.acesso.yahoo.com/ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html