Objetos

Considere um domínio de aplicação específico como uma casa típica. Sob certo sentido ela pode ser vista como uma composição de entidades tais como:

João o pai
Maria a mãe
Pedro o filho
Xpit um Cachorro
Xbeta uma Cadela

Nela há, também, vários outros objetos como:

cômodos salas, quartos, banheiros, ...
móveis mesas, cadeiras, ...
louças xícaras, pratos, talheres, ...
decorações quadros, tapetes, ...

Um objeto é cada uma das entidades identificáveis num dado domínio de aplicação. Alguns destes objetos são objetos concretos, a exemplo dos citados acima. Contudo, há também objetos abstratos tais como: endereço, estilo da casa (barroco, gótico, romano, colonial, ...) e valor (em unidade monetária).


Agregação/decomposição

Sob certo sentido, um objeto pode ser visto como um agregado de outros objetos (suas partes). Numa casa típica, por exemplo, pode-se visualizar várias objetos que a compõem, a exemplo de  pelo diagrama que se segue:

Este diagrama mostra que um objeto casa é composto por vários outros objetos. A relação entre uma casa e suas partes componentes pode ser lida como:

- uma casa <é composta por> ...
- uma casa <é um agregado de> ...
- uma casa <é decomposta em> ...

e apresenta uma visão todo -> parte, ou seja, do objeto mais complexo para as partes que o compõe.

Uma mudança rápida de perspectiva possibilita um outro tipo de afirmações:

- o endereço <é  parte da> casa
- os móveis <são parte da> casa
- ...

Em realidade estes dois tipos de relacionamento  ( <é composta por> e <é parte de> ) são precisamente o mesmo, mudando apenas a perspectiva de observação: todo -> parte ou parte -> todo.


Cardinalidade de uma relação

Note que a relação existente entre o objeto casa e o objeto endereço é uma relação de um para um (uma casa possue um único endereço e um endereço identifica uma única casa). Já a relação entre uma casa e seus cômodos é uma relação de um para vários (1:n - uma casa possui vários cômodos ou, de forma inversa, há vários cômodos numa casa).

Esta medida é chamada de cardinalidade da relação, a qual pode assumir valores como:

1:1 um para um
1:2 um para dois
1:n um para vários
n:1 vários para um
n:n vários para vários


Hierarquia de Agregação/decomposição

Considere, agora, um endereço típico como:

Rua das acácias 244 - bloco B - apto. 907
Trindade
88022-500 - Florianópolis - SC

Em certas circunstâncias o endereço de uma casa pode ser tomado como um objeto monolítico (como um todo). Em outros contextos, contudo, ele pode ser melhor tratado pela identificação das partes que o compõe:

A reunião desta nova visão de um endereço com a descrição anterior da casa possibilita a contrução de uma hierarquia de agregação/decomposição conforme exemplificado a seguir:

Uma visão diferente, porém equivalente, desta hierarquia é dada pelo esboço abaixo:

A identificação de um objeto pela descrição de sua hierarquia de agregação/decomposição  não é tão incomum. Aliás, um observador atento notará que ela pode ser tomada como base para descrição de qualquer objeto, a exemplo de:

- Universo
- Carro
- Pessoa
- Universidade
- Célula


Contextos de Observação

Conforme mencionado anteriormente, o endereço pode ora ser considerado com um objeto monolítico, ora como um agregado de objetos mais simples. O uso de uma ou outra perspectiva é em grande parte dependente do domínio da aplicação, ou seja, do contexto em que a discussão esta inserida.

Considere, por exemplo, uma pessoa típica. Sob a perspectiva de um médico uma pessoa pode ser decomposta segundo sua anatomia:

Mas para um comerciante esta mesma pessoa é vista segundo uma perspectiva bastante diferente:

Mesmo sob a perspectiva de um médico uma pessoa pode ser descrita de diferentes formas. Observe que o diagrama para a hierarquia de agregação/decomposição apresentado a seguir diverge dos apresentados anteriormente:


Programação Orientada a Objetos  - CCO / INE / UFSC
mariani@inf.ufsc.brraul@inf.ufsc.br
Última atualização: 25 de maio de 1997