UCSal – Bacharelado em Informática
Tópicos Especiais em Informática II
Profa. Semíramis Assis
2015.2
Delegação ou composição




Objetivo – Delegar ações a quem as sabe
fazer.
Várias classes podem ser agrupadas em
uma só, sendo esta nova classe invocada
na classe Principal.
Classes precisam ser relacionadas entre si.
Exemplos?
Delegação ou composição
Agregação




Conjunto de classes não relacionadas
em uma nova classe.
Classes de pacotes diferentes podem
ser agregadas em uma única classe por
necessidade da lógica do negócio.
Classe agregadora é instanciada na
classe Principal.
Exemplo?
Agregação
Polimorfismo



Um mesmo objeto pode assumir diferentes
formas, bastando que as formas “sejam
um” ou “um tipo do” objeto pai.
Facilita o desacoplamento quanto maior
for a abstração.
Exemplo?
Polimorfismo
É UM
Classes Abstratas




Modelo comportamental a ser seguido
por objetos que “sejam uma”
implementação do modelo com
alguma(s) característica(s) particulares
(valor dos atributos e/ou
implementação de
ações/comportamentos diferentes).
Não pode ser instanciada.
Possui métodos abstratos e não
abstratos.
Pode herdar de apenas uma classe,
Interfaces








Modelo estrutural a ser seguido para garantir que todos os
objetos sejam o que dizem ser, ou seja, um contrato a ser
assinado por todas as classes que se comprometem em ter a
mesma característica/funcionalidade.
Não pode ser instanciada.
Nível máximo de abstração. Nível máximo de desacoplamento.
Garante a mesma visão do sistema por todas as equipes de
desenvolvedores (espalhadas geograficamente).
Fundamental para garantir boas práticas de programação.
Fundamental para utilização de Design Patterns (Padrões de
Projeto).
Abordagem de métodos diferente das classes abstratas:
enquanto na interface se definem métodos estruturais, nas
classes abstratas se definem métodos comportamentais
(ações).
Serve como estrutura para classes Abstratas.
Classes podem implementar diversas interfaces.
Interfaces
Por que utilizar interfaces ao invés de apenas Classes Abstratas?
O pai do Java responde!
Interfaces



É preciso conhecer o comportamento da
classe Pai para saber como a filha irá se
comportar (quebra o encapsulamento);
Mudanças na classe Pai irão interferir no
comportamento das classes filhas,
podendo “quebrá-las”;
Uso de interfaces é uma melhor forma
de herança múltipla (que não é
contemplada em Java).
Exemplos - Interfaces

No Core do Java:
 Readable – utilizada por classes que
tenham capacidade de ler alguma
informação de entrada. É implementada
por objetos de um mesmo tipo (buffer de
leitura) que possuem a estrutura
necessária para ler uma informação.
 Comparable – utilizada por objetos que
tenham a capacidade de serem
comparados entre si. É implementada por
diversos objetos distintos que podem ser
Interface Readable
Interface Comparable
Classes
cumprem
contrato,
seguem a
estrutura
ditada pela
interface.
Dita
estrutur
a
Segue
estrutura e
dita
comportamen
to
Download

POO_aula15_16