O QUE É UMA BOA DECOMPOSIÇÃO?
A RESPOSTA FÁCIL:
UMA BOA DECOMPOSIÇÃO EQUILIBRA
ADEQUADAMENTE TODOS OS FATORES QUE LISTAMOS
ANTES: ENCAPSULAMENTO, GRANULARIDADE,
DEPENDÊNCIA, FLEXIBILIDADE, SIMPLICIDADE,
PERFORMANCE, EVOLUÇÃO, REUSABILIDADE
DICAS PARA ATINGIR UMA BOA
DECOMPOSIÇÃO SERÃO DADAS AO LONGO DO CAPÍTULO
POR ENQUANTO, QUEREMOS FAZER ALGUMAS
OBSERVAÇÕES GERAIS
NÃO PROJETE CLASSES/OBJETOS PARA
CORRESPONDEREM A ETAPAS DE EXECUÇÃO
PORQUE DECISÕES DE PROJETO
TRANSCENDEM O TEMPO DE EXECUÇÃO
VEREMOS OUTRAS FORMAS DE
DECOMPOR E MANTER COESÃO À FRENTE
DECOMPONHA DE FORMA A LIMITAR O EFEITO
DE CADA DECISÃO DE PROJETO NO RESTO DO SISTEMA
QUALQUER COISA QUE PERMEIA O
SISTEMA É DIFÍCIL DE MUDAR
DECOMPONHA E ENCAPSULE DE FORMA A
ESCONDER ALGO!
REPRESENTAÇÃO DE DADOS (USANDO
TIPOS ABSTRATOS DE DADOS)
ALGORITMOS (EX. TÉCNICAS DE
ORDENAÇÃO OU PESQUISA)
FORMATOS DE ENTRADA/SAÍDA
DEPENDÊNCIAS DE MÁQUINAS (EX.
ORDEM DE BYTES, CÓDIGO DE CARACTERES)
INTERFACES DE MUITO BAIXO NÍVEL
(EX. ORDEM DE CHAMADA DE OPERAÇÕES DE MUITO
BAIXO NÍVEL)
CRITÉRIOS PARA AVALIAR A QUALIDADE DA
DECOMPOSIÇÃO (MODULARIDADE)
DECOMPOSABILIDADE
PROBLEMAS MAIORES ESTÃO
QUEBRADOS EM PROBLEMAS MENORES QUE PODEM
SER RESOLVIDOS SEPARADAMENTE?
COMPOSABILIDADE
OBJETOS MAIORES SÃO
COMPOSTOS DE OBJETOS MENORES EXISTENTES?
NOVOS OBJETOS
MAIORES PODEM SER FACILMENTE COMPOSTOS
COM OBJETOS MENORES EXISTENTES?
COMPREENSÃO DE OBJETOS
COMPOENENTES SÃO
COMPREENSÍVEIS SEPARADAMENTE?
CONTINUIDADE DE OBJETOS
PEQUENAS MUDANÇAS À
ESPECIFICAÇÃO AFETAM UM NÚMERO PEQUENO
E LOCALIZADO DE OBJETOS?
PROTEÇÃO DE OBJETOS
OS EFEITOS DE PROBLEMAS
DE TEMPO DE EXECUÇÃO SÃO LIMITADOS A
UM PEQUENO NÚMERO DE OBJETOS
RELACIONADOS?
PRINCÍPIOS GERAIS PARA A CRIAÇÃO DE
UMA BOA DECOMPOSIÇÃO
SUPORTE DA LINGUAGEM
OBJETOS (OU CLASSES)
DEVEM SER UNIDADES SINTÁTICAS DA
LINGUAGEM
POUCAS INTERFACES
OBJETOS DEVEM SE
COMUNICAR COM O MÍNIMO DE OUTROS OBJETOS
INTERFACES PEQUENAS (ACOPLAMENTO
FRACO)
SE 2 OBJETOS COMUNICAM,
ELES DEVEM TROCAR O MÍNIMO DE
INFORMAÇÃO
INTERFACES EXPLÍCITAS
QUANDO 2 OBJETOS
COMUNICAM, A COMUNICAÇÃO DEVE SER
ÓBVIA NO TEXTO (CÓDIGO)
ESCONDER INFORMAÇÃO
TODA INFORMAÇÃO QUE
NÃO PARTICIPAR DA INTERFACE DE UM OBJETO
DEVE SER PRIVADA
SEPARAR A INTERFACE DA
IMPLEMENTAÇÃO
PERMITINDO ASSIM A
SUBSTITUIÇÃO DA IMPLEMENTAÇÃO
FATORAR O QUE É COMUM E
ENCAPSULAR O QUE É DIFERENTE
E CRIAR UMA INTERFACE
ENTRE OS DOIS
tecnicas2.htm programa anterior próxima