Please enable JavaScript.
Coggle requires JavaScript to display documents.
Encapsulamento e Congeneridade (Page-Jones Cap. 8) - Coggle Diagram
Encapsulamento e Congeneridade
(Page-Jones Cap. 8)
Duas propriedades fundamentais
e sistemas OO
Encapsulamento
nivel 0 - isento
nível 1 - subrotinas, funções, procedimentos
nível 2 - classes (objetos)
nível 3 - pacotes
nível 4 - componentes
Critérios
Coesão
minimizar acoplamento
maximizar coesão
Coesão de Classe
Acoplamento
Acoplamento de Classe
fan-out
Congeneridade
(
connascence
)
Entre dois elementos.
Compartilham um destino.
"Terem nascido juntos"
congeneridade(A, B)
1) Mudança em A pede mudança de B
2) Alguma mudança pediria mudança em A e B
Variedades
Explícita
de nome
de tipo ou classe
Implícita
de posição
Direcional (uni, bi) ou Não Direcional
Estática (código)
nome
mesmo nome para referir-se à mesma coisa
tipo ou classe
declaração e uso
convenção
atributo
direção
da classe Hominóide
algoritmo
algoritmos tabela hash
posição
argumentos formais vs reais
Dinâmica (execução)
execução
inicialização e uso de variáveis
temporal
liga e desliga de um 'raio-x'
valor
cantos de um 'retângulo', BDs redundantes
identidade
referência ao mesmo objeto/variável
Contrageneridade
associada à diferença
variáveis com nomes diferentes
características com mesmo nome
na herança múltipla
Congeneridade e Fronteiras
de Encapsulamento
OO (nível 2 de encapsulamento)
OO ajuda a controlar a congeridade
Três diretrizes
:
(manter a congeneridade no interior das fronteiras)
1) minimizar congeneridade total ao criar sistemas com elementos encapsulados
2) minimizar congeneridade que cruze fronteiras de encapsulamento
3) maximizar congeneridade dentro dos elementos encapsulados
Abusos
:
friend
no C++
herança sem restrição
contar com "acidentes" de implementação