Abstração

Abstração (do latim abs, significando away from and trahere , significando para desenhar) é o processo de tirar ou remover características de algo, a fim de reduzi-lo a um conjunto de características essenciais. Na programação orientada a objetos, a abstração é um dos três princípios centrais (junto com o encapsulamento e a herança). Através do processo de abstração, um programador esconde todos os dados relevantes sobre um objeto, a fim de reduzir a complexidade e aumentar a eficiência. Da mesma forma que a abstração às vezes funciona na arte, o objeto que permanece é uma representação do original, com detalhes indesejados omitidos. O próprio objeto resultante pode ser referido como uma abstração, significando uma entidade nomeada composta de atributos selecionados e comportamento específico para um uso particular da entidade de origem. A abstração está relacionada tanto ao encapsulamento quanto à ocultação de dados.

No processo de abstração, o programador tenta garantir que a entidade seja nomeada de forma que faça sentido e que tenha todos os aspectos relevantes incluídos e nenhum dos aspectos estranhos. Uma analogia do mundo real da abstração pode funcionar desta forma: Você (o objeto) está se organizando para encontrar um encontro às cegas e está decidindo o que dizer a eles para que eles possam reconhecê-lo no restaurante. Você decide incluir as informações sobre onde você estará localizado, sua altura, cor do cabelo e a cor do seu casaco. Estes são todos os dados que ajudarão o procedimento (o seu encontro com você) a funcionar sem problemas. Você deve incluir todas essas informações. Por outro lado, há muitas informações sobre você que não são relevantes para esta situação: seu número de segurança social, sua admiração por filmes obscuros e o que você levou para "mostrar e contar" no quinto ano são irrelevantes para esta situação em particular porque não vão ajudar o seu encontro a encontrá-lo. No entanto, como as entidades podem ter qualquer número de abstrações, você poderá usá-las em outro procedimento no futuro.