• Nenhum resultado encontrado

Capítulo 6 – Estudo de Casos.

2. Fundamentos da Modelagem

2.4. A Modelagem Orientada a Objetos

2.4.3. Tipos, Classes e Objetos

Aplicando o encapsulamento em larga escala, observa-se que existem grupos de objetos compartilham a mesma

interface, isto é, apesar se serem objetos distintos, oferecem os mesmos serviços para o sistema. Estes objetos seguem a mesma estrutura e definem o que chama- se de um tipo abstrato de dados. Um tipo é uma estrutura de dados com um

conjunto de definições de operações que afetam esta estrutura. No tipo não existe a preocupação de implementar estas operações, ele serve apenas para se definir um padrão no modelo, reduzindo

a complexidade da modelagem. A implementação de um tipo é uma

classe. A classe possui, além das

definições, a implementação das operações, para criar um componente autônomo para o sistema. A classe é um molde para a criação de objetos, porque permite descrever um conjunto de

objetos que compartilha a mesma estrutura de dados e as mesmas

definições operações. Todos os objetos de uma classe possuem as mesmas definições mas podem possuir valores diferentes nos dados, respondendo de modo diferente às mensagens enviadas à ele.

Figura 14 - Exemplos de Classes e Objetos

Um objeto é uma instância de uma classe, ele realiza a classe para o sistema. A estrutura do objetos é

definida pela classe, mas as operações e estados são definidos na instância

(Jacobson, 1992). No mundo real os objetos existem e trocam mensagens. É a partir destes objetos que se abstrai as classes para o modelo, porque no modelo se está interessado nas

estruturas dos objetos. O processo de classificação dos objetos, isto é,

determinar a classe a que o objeto deva pertencer, é a essência da modelagem orientada a objetos.

Em um exemplo típico de uma instalação de engenharia é possível classificar os equipamentos como equipamentos elétricos e equipamentos hidráulicos. A figura abaixo mostra esta classificação na forma de conjuntos . As classes estão associadas aos conjuntos,e os objetos aos seus elementoss destes conjuntos, que compartilham as mesmas propriedades. Pertencer ao conjunto equivale dizer que o elemento

Podem existir equipamentos que

possuem características de mais de um conjunto.

Figura 15 - Subclasses da classe Reprodutor de Imagens

O exemplo pode mostrar a

classificação não é única e pode estar sujeita a múltiplas interpretações, dependendo do enfoque que se queira dar ao problema. O importante é

verificar em cada classe quais as propriedades que estão sendo

compartilhadas pelos seus elementos, para haver uma boa relação entre o modelo e a realidade.

Figura 16 - Classes se assemelham a conjutos de objetos

2.4.4. Herança

A herança é uma das principais

características da orientação a objetos, e que está intimamente associada ao

conceito de agrupamento dos objetos segundo um conjunto de propriedades comuns. Uma classe de um objeto é o agrupamento de objetos que

compartilham a mesma estrutura de dados e funções. É possível se encontrar grupos que possuam um conjunto de propriedades, e que a partir deste grupo seja possível criar outros grupos que possuam propriedades ainda mais específicas, formando assim um

subconjunto do anterior. A orientação a objetos permite criar uma relação entre

as classes de objetos de modo que classe pode ser gerada a partir de outra classe, herdando dela suas propriedades estáticas (atributos) e dinâmicas

(funções).

A herança permite ainda que as características herdadas da classe mãe possam ser alteradas e expandidas pela classe filha. Incluindo novas

características, ou modificando características existentes. Esta

capacidade dos modelos orientados a objetos permite que a modelagem seja feita em camadas de classes, criando uma árvore para cada classe, com um nível decrescente de abstração, quando se caminha da mãe para a filha.

O uso da herança permite criar classes mais genéricas, com funcionalidades gerais e que podem ser herdadas por várias classes em diferentes situações simplificando a modelagem e

implementação. A herança de classes aumenta muito a capacidade de

reutilização das classes, porque pode-se criar classes genéricas com

propriedades gerais e que podem ser utilizadas em diversas situações. O reuso de classes apresenta um efeito positivo no prazo e no custo do desenvolvimento de projetos de software.

Figura 17 - Exemplo real de herança No exemplo, a herança é utilizada para distribuir os equipamentos em

categorias. Observa-se que,

inicialmente, todos são equipamentos. Os equipamentos podem ser para casa, podem ser elétricos e podem ser

mecânicos. Alguns equipamentos para casa são também elétricos, criando a

classificação dos eletrodomésticos. O conceito de herança e de objetos em software não é novo, mas foi pouco utilizado nos projetos de sistema até que as linguagens de programação que

permitissem implementar em software estes conceitos com facilidade. Hoje existem várias linguagens orientada a objetos que permitem incorporar herança e encapsulamento nos sistema de software.

2.4.5.

Polimorfismo

Uma decorrência interessante da comunicação por mensagens e da herança a orientação a objetos é o polimorfismo. Define-se polimorfismo como a propriedade que o emissor de uma mensagem não precisa conhecer a instância da classe que recebe esta mensagem. (Jacobson, et al, 1992). Esta propriedade leva ao fato de que uma mesma mensagem pode ser interpretada de modos diferentes, quando for

recebida por objetos diferentes. Assim, como as implementações das funções que recebem a mensagem são diferentes

elas podem responder de forma diferente (poli = múltiplas,

morfo="forma"). Polimorfismo é a propriedade de que a mesma mensagem pode ser respondida de forma diferente por duas ou mais classes.

Há alguma confusão entre o encapsulamento e o

polimorfismo porque ambos se referem ao ocultamento da implementação do mundo externo ao objeto. No entanto, o polimorfismo está centrado na

possibilidade de uma resposta diferente devido ao desconhecimento do

destinatário da mensagem, enquanto no encapsulamento a implementação está apenas oculta do mundo exterior.

Figura 18 - Polimorfismo: a mesma mensagem tem respostas diferentes

2.4.6. Vantagens

Documentos relacionados