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

 


Responder a