Código LimpoCapitulo 6Objetos e Estrutura de Dados                               Objetos e Bruno Maia                     ...
Abstração de Dados● 6-2: Os métodos exigem regra de acesso● 6-1: Obriga a ser manipulada independentemente
Abstração de Dados● Manipulação independente expõe as variáveis● Estaria exposta mesmo com métodos de leitura e  escrita● ...
Anti-simetria data/objeto● Objetos usam abstrações para esconder seus  dados e expõe as funçoes que operam seus dados.● Es...
A Lei de DemeterA Lei de Demeter é uma heurística que diz: "ummódulo não deve enxergar o interior dos objetos que elemanip...
Carrinhos de Trem● final String outputDir = ctxt.getOptions().getScratchDir().   getAbsolutePath();● Esse tipo de código t...
Híbridos● São estruturas metade objetos metade estrutura de  dados. Elas tornam públicas as variáveis privadas,  incitando...
Estruturas Ocultas● Cria o arquivo de rascunho de um determinado  nome (obtido através do caminho absoluto do  diretório d...
Objetos de Transferência de               Dados● Os Objetos de Transferência de dados são  estruturas muito úteis, especia...
O Active Record● Os Actives Records são formas especiais de  Objetos de Transferência de Dados.● Eles são estruturas de da...
FIM
Código Limpo: Objetos e Estruturas de Dados cap6
Próximos SlideShares
Carregando em…5
×

Código Limpo: Objetos e Estruturas de Dados cap6

509 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
509
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Código Limpo: Objetos e Estruturas de Dados cap6

  1. 1. Código LimpoCapitulo 6Objetos e Estrutura de Dados Objetos e Bruno Maia Carlos Alberto José Leonardo Maxwel Otsuka
  2. 2. Abstração de Dados● 6-2: Os métodos exigem regra de acesso● 6-1: Obriga a ser manipulada independentemente
  3. 3. Abstração de Dados● Manipulação independente expõe as variáveis● Estaria exposta mesmo com métodos de leitura e escrita● Ocultar a implementação significa inserir métodos para chamadas de variáveis● Deve-se expor interfaces abstratas que não demonstrem a implementação.
  4. 4. Anti-simetria data/objeto● Objetos usam abstrações para esconder seus dados e expõe as funçoes que operam seus dados.● Estruturas de dados expõe seus dados.● O código procedural facilita a adição de novas funções sem precisar alterar TAD existentes● Código OO facilita a adição de novas classes sem alterar funções existentes
  5. 5. A Lei de DemeterA Lei de Demeter é uma heurística que diz: "ummódulo não deve enxergar o interior dos objetos que elemanipula". Ou seja, um método f de uma classe C sódeve chamar os métodos de:● C;● Um objeto criado por f;● Objeto passado como parâmetro para f;● Um objeto dentro de uma instância da variável f;"Fale apenas com conhecidos, não com estranhos".
  6. 6. Carrinhos de Trem● final String outputDir = ctxt.getOptions().getScratchDir(). getAbsolutePath();● Esse tipo de código tem esse nome pois se parece com com um monte de carrinhos de trem acoplados. Esse tipo de cadeias de chamadas são consideradas descuidadas e devem ser evitadas. Na maioria das vezes é melhor dividi-las assim: ■ Options opts = ctxt.getOptions(); ■ File scratchDir = opts.getScratchDir(); ■ final String outputDir = scratchDir.getAbsolutePath();
  7. 7. Híbridos● São estruturas metade objetos metade estrutura de dados. Elas tornam públicas as variáveis privadas, incitando outras funções externas a usarem tais variáveis de forma como um programa procedimental usaria uma estrutura de dados.● Eles dificultam tanto a adição de novas funções como de novas estruturas de dados.● Evite cria-los.
  8. 8. Estruturas Ocultas● Cria o arquivo de rascunho de um determinado nome (obtido através do caminho absoluto do diretório de rascunho)● A estrutura interna é escondida, evitando que funções violem a Lei de Demeter ao navegar por objetos "alheios" (que não deveria enxergar)
  9. 9. Objetos de Transferência de Dados● Os Objetos de Transferência de dados são estruturas muito úteis, especialmente para se comunicar com banco de dados ou analisar sintaticamente mensagens provenientes de sockets e assim por diante.● Eles costumam se tornar os primeiros numa série de estágios de tradução que convertem dados brutos de um banco de dados no código do aplicativo.
  10. 10. O Active Record● Os Actives Records são formas especiais de Objetos de Transferência de Dados.● Eles são estruturas de dados com variáveis públicas , mas eles tipicamente possuem métodos de navegação como save(), find(), insert() ...● Esses Actives Records são traduções diretas das tabelas de banco de dados ou de outras fontes de dados
  11. 11. FIM

×