Product Design, Manufacturing & Innovation Resources
Lar » Abstração (programação orientada a objetos)

Abstração (programação orientada a objetos)

1970
  • Barbara Liskov
Engenheiro de software codificando classes abstratas em um ambiente IDE moderno.

(Imagem gerada apenas para fins ilustrativos)

Abstração em Programação Orientada a Objetos É o conceito de ocultar detalhes complexos de implementação e mostrar apenas as características essenciais do objeto. Ele se concentra no que um objeto faz, em vez de como ele o faz. Isso é alcançado por meio de classes abstratas e interfaces, que definem um modelo para outras classes sem fornecer uma implementação completa, simplificando sistemas complexos.

Abstraction is a process of managing complexity. In programming, it involves creating a simplified representation of a system or component. In Programação Orientada a Objetos, this is primarily done using abstract classes and interfaces. An abstract class is a class that cannot be instantiated on its own and is meant to be subclassed. It can contain abstract methods (methods without a body) that subclasses must implement. An interface is a similar concept but is purely abstract; it can only define method signatures, not implementations. A class can then ‘implement’ an interface, promising to provide the functionality defined in it.

Isso permite que os programadores definam um contrato ou API comum que várias classes diferentes podem seguir. Por exemplo, uma interface `Storable` poderia definir os métodos `save()` e `load()`. Diferentes classes, como `Document`, `Image` e `UserSettings`, poderiam implementar a interface `Storable`, cada uma fornecendo sua própria lógica para salvar e carregar. O código que trabalha com objetos `Storable` não precisa saber o tipo específico de objeto com o qual está lidando; ele só precisa saber que pode chamar `save()`. e ‘load()’. Isso desacopla o código do cliente das implementações específicas, tornando o sistema mais modular, flexível e mais fácil de entender em um nível alto.

UNESCO Nomenclature: 1203
Ciência da Computação

Tipo

Sistema abstrato

Interrupção

Fundamentais

Uso

Uso generalizado

Precursores

  • abstração matemática
  • O conceito de sub-rotinas e funções como uma forma de abstração procedural.
  • teoria dos tipos abstratos de dados (adt)
  • a necessidade de gerenciar a complexidade em projetos de engenharia de grande escala

Aplicações

  • camadas de acesso ao banco de dados (DALs) que ocultam as consultas SQL específicas
  • Os drivers de dispositivo abstraem a complexidade do hardware do sistema operacional.
  • gráfico interface do usuário (GUI) libraries providing high-level widgets
  • protocolos de rede como o HTTP abstraem o subjacente TCP/IP comunicação
  • a biblioteca de modelos padrão (stl) em C++

Patentes:

NA

Ideias de Inovação Potencial

  • cloud computing apis (e.g., aws s3) abstracting underlying storage hardware
  • cross-platform development frameworks like react native or flutter
  • object-relational mapping (orm) libraries like hibernate or entity framework
  • standardized apis for machine learning frameworks (e.g., scikit-learn’s estimator api)
  • the java virtual machine (jvm) abstracting the underlying operating system and hardware
  • software-defined networking (sdn) abstracting the network control plane
  • blockchain smart contract interfaces (e.g., erc-20 for tokens)
  • universal hardware abstraction layers (hals) for embedded systems
  • apis for interacting with large language models (llms)
  • quantum computing programming frameworks that abstract quantum hardware details
Relacionado a: abstração, interface, classe abstrata, API, ocultação de informações, complexidade, POO, contrato, desacoplamento, modularidade.

Contexto histórico

Abstração (programação orientada a objetos)

1967
1967
1970
1970
1970
1970-01-01
1975-06-01
1960
1967
1970
1970
1970
1970
1973
1980

(Caso a data seja desconhecida ou irrelevante, por exemplo, "mecânica dos fluidos", é fornecida uma estimativa aproximada de seu surgimento notável)

10º ano aniversário

Imagens em tamanho real e downloads estão disponíveis apenas, 100% gratuitos, para membros registrados.