PERMITE DESACOPLAR CLASSES COM MUITA EFICÁCIA
EM VEZ DE REFERENCIAR UMA CLASSE ESPECÍFICA, PODE-SE REFERENCIAR QUALQUER CLASSE QUE IMPLEMENTE UMA CERTA INTERFACE
IDENTIFICAR AS INTERFACES IMPORTANTES DE UM PROGRAMA E USÁ-LAS NAS REFERÊNCIAS EM VEZ DE REFERENCIAR CLASSES PERMITE ESTENDER O PROGRAMA COM MUITO MAIS FACILIDADE
EXEMPLO: UMA APLICAÇÃO QUE GERENCIA A COMPRA DE PRODUTOS
TEMOS QUE TER INFORMAÇÃO SOBRE:
FORNECEDORES
EMPRESAS DE FRETE
LUGARES DE RECEPÇÃO DE PRODUTOS
LUGARES DE FATURAMENTO
TODAS ESSAS ENTIDADES TÊM UM ENDEREÇO
TAIS ENDEREÇOS APARECEM EM VÁRIOS LUGARES DA INTERFACE DO USUÁRIO (UI)
VOCÊ QUER UMA CLASSE QUE EXIBA E EDITE ENDEREÇOS DE FORMA A REUTILIZÁ-LA QUANDO HOUVER UM ENDEREÇO A MANIPULAR NA UI
DIGAMOS QUE A CLASSE SE CHAME EndereçoPanel
EndereçoPanel DEVE OBTER E ALTERAR ENDEREÇOS DE OBJETOS
A CLASSE EndereçoPanel DEVE TRABALHAR COM OBJETOS DE QUE CLASSE?
CLASSES DIFERENTES SERÃO USADAS PARA FORNECEDORES, EMPRESAS DE FRETE, ETC.
A SOLUÇÃO É USAR UMA INTERFACE PARA ENDEREÇOS E FAZER COM QUE EndereçoPanel REFERENCIE (TRABALHE COM) QUALQUER CLASSE QUE IMPLEMENTE ESSA INTERFACE
EndereçoPanel NÃO SABE COM QUE TIPO DE CLASSE ELA TRABALHA!
EM VEZ DE PENSAR "COM QUE CLASSE VOU ME COMUNICAR?", PENSE "CLASSES QUAISQUER QUE SUPORTAM QUAL INTERFACE ME INTERESSAM?"
ISSO É MUITO PODEROSO!
DEVEM EXISTIR INTERFACES PARA AS PARTES MAIS IMPORTANTES DE QUALQUER PROGRAMA
NO EXEMPLO ACIMA, PODEMOS USAR INTERFACES E DELEGAÇÃO
COMO ACHAR INTERFACES
PROCURE ASSINATURAS REPETIDAS
EXEMPLO: VÁRIAS CLASSES QUE REPRESENTAM COISAS QUE PODEM SER VENDIDAS INDICA A UMA INTERFACE VendávelIF
ONDE HÁ DELEGAÇÃO, UM OBJETO SE ESCONDE ATRÁS DE OUTRO: DEVE HAVER UMA INTERFACE COMUM
PROCURE MÉTODOS QUE PODERIAM SER USADAS EM APLICAÇÕES SEMELHANTES E USE INTERFACES PARA QUE A REUSABILIDADE DAS CLASSES CLIENTES SEJA MAIOR
EXEMPLO: MUITAS COISAS PODERIAM SER RESERVÁVEIS, NÃO SÓ PASSAGENS DE AVIÃO
EXEMPLO: MUITAS COISAS PODE SER ALUGADAS, NÃO SÓ FITAS DE VÍDEO
PROCURE MUDANÇAS FUTURAS (NOVOS OBJETOS QUE PODERIAM APARECER) E COLOQUE AS SEMELHANÇAS SOB CONTROLE DE INTERFACES