Product Design, Manufacturing & Innovation Resources
家 » 抽象化(オブジェクト指向プログラミング)

抽象化(オブジェクト指向プログラミング)

1970
  • Barbara Liskov
最新のIDE環境で抽象クラスをコーディングするソフトウェアエンジニア。

(画像はイメージです)

抽象化 オブジェクト指向プログラミング これは、複雑な実装の詳細を隠蔽し、オブジェクトの本質的な機能のみを表示するという概念です。オブジェクトがどのように動作するかではなく、何をするかに焦点を当てます。これは、完全な実装を提供せずに他のクラスの設計図を定義する抽象クラスとインターフェースによって実現され、複雑なシステムを簡素化します。

Abstraction is a process of managing complexity. In programming, it involves creating a simplified representation of a system or component. In オブジェクト指向プログラミング, 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.

これにより、プログラマは複数の異なるクラスが従うことができる共通の契約または API を定義できます。たとえば、インターフェース「Storable」は「save()」メソッドと「load()」メソッドを定義できます。「Document」、「Image」、「UserSettings」などの異なるクラスはすべて「Storable」インターフェースを実装し、それぞれが保存と読み込みのための独自のロジックを提供します。「Storable」オブジェクトを操作するコードは、処理しているオブジェクトの特定の型を知る必要はありません。必要なのは、「save()」を呼び出すことができることだけです。そして「load()」メソッド。これにより、クライアントコードが具体的な実装から分離され、システムがよりモジュール化され、柔軟性が高まり、高レベルでの理解が容易になります。

UNESCO Nomenclature: 1203
コンピュータサイエンス

タイプ

抽象システム

混乱

基礎

使用法

広く普及している

前駆物質

  • 数学的抽象化
  • 手続き的抽象化の一形態としてのサブルーチンと関数の概念
  • 抽象データ型(ADT)理論
  • 大規模エンジニアリングプロジェクトにおける複雑性の管理の必要性

アプリケーション

  • 特定のSQLクエリを隠蔽するデータベースアクセス層(DAL)
  • デバイスドライバは、オペレーティングシステムからハードウェアの複雑さを抽象化する。
  • グラフィカル ユーザーインターフェース (GUI) libraries providing high-level widgets
  • HTTPのようなネットワークプロトコルは、基盤となるものを抽象化します。 TCP/IP コミュニケーション
  • C++の標準テンプレートライブラリ(STL)

特許:

NA

潜在的なイノベーションのアイデア

  • 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
関連キーワード:抽象化、インターフェース、抽象クラス、API、情報隠蔽、複雑性、オブジェクト指向プログラミング、契約、疎結合、モジュール性。

歴史的背景

抽象化(オブジェクト指向プログラミング)

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

(日付が不明または関連性がない場合、例えば「流体力学」などでは、その注目すべき出現時期の概算値が提示されます。)

10年目 周年

フルサイズの画像とダウンロードは、登録会員のみが100%無料で利用できます。