3 Modelos Para Modelar a Complexidade
Abstração | Encapsulamento | Hierarquia |
---|---|---|
Tratar os objetos que são semelhantes como um "tipo/categoria". | O objeto é uma unidade que esconde o seu estado interno. | Procurar relações "é-um" (is-a). |
A interação com o objeto é feita através de "pontos de acesso". | Procurar relações "parte-de" (part-of). |
Abstração
Decorre do reconhecimento de semelhanças entre certos objetos, situações ou processos no mundo real, e a decisão de se concentrar nestas semelhanças -> um tipo de coisa.
Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de objetos.
Encapsulamento
Incentiva a ocultação da estrutura (interna) de um objeto (a informação que mantém), bem como a implementação dos seus métodos.
Nenhuma parte de um sistema complexo deve depender do conhecimento dos detalhes internos de qualquer outra parte.
O encapsulamento permite que as alterações de um programa sejam feitas de forma fiável, repercussões limitadas.
Contribuição para gerir complexidade
Escondendo a dimensão "privada" (interna) das nossas abstrações.
Hierarquia
Relação de herança
Define uma relação entre classes, em que uma classe partilha/especializa a estrutura ou comportamento definido numa outra classe.
A herança denota uma relação semântica "is-a".
Relação de agregação
Define uma relação entre categorias de coisas, do tipo "parte-of".
A agregação denota a relação semântica "parte-of".
Last updated