Estudos gratuitos da ER Soluções WebVer outros conteúdos grátis
ER Soluções WebEstudos · Code Complete

6.1. Classes: tipos abstratos e boas interfaces

Uma classe é um tipo abstrato de dados: interface coerente, implementação escondida.

Classe Fonte com métodos do domínio na interface e os detalhes de pixels escondidos
Fale na língua do problema, não da implementação.

Resumo

Perguntas-chave

responda de cabeça, depois abra
Qual vantagem de um ADT?
Esconde detalhes, limita o efeito de mudanças, deixa a interface informativa e permite trabalhar com conceitos do domínio.
O que é uma interface com abstração inconsistente?
Uma interface que mistura operações de ideias diferentes, como uma classe Funcionario que também expõe métodos de lista.
Por que não expor dados membros públicos?
Porque qualquer código pode alterá-los sem controle e a implementação fica presa à forma atual dos dados.

Exercícios de fixação

0/5 respondidas
1.
A classe Funcionarios tem adicionarFuncionario(), removerFuncionario() e também proximoItemDaLista() e primeiroItem(). Qual o problema?
2.
Uma classe Ponto deixa x e y públicos. O que o capítulo recomenda?
3.
Qual é a principal vantagem de pensar em tipos abstratos de dados?
4.
O cliente de uma classe chama salvar() só depois de chamar validar(), porque sabe que salvar() não valida. Isso é:
5.
Por que oferecer operações em pares (como ligar/desligar)?
Seu progresso fica salvo neste navegador.