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

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

1970
  • Barbara Liskov
Software engineer coding abstract classes in a modern IDE environment.

(画像はイメージです)

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

抽象化とは、複雑さを管理するプロセスです。プログラミングにおいては、システムやコンポーネントの簡略化された表現を作成することを指します。オブジェクト指向プログラミング(OOP)では、主に抽象クラスとインターフェースを用いてこれを行います。抽象クラスとは、それ自体ではインスタンス化できず、サブクラス化されることを前提としたクラスです。抽象クラスには、サブクラスが実装しなければならない抽象メソッド(本体を持たないメソッド)を含めることができます。インターフェースは同様の概念ですが、純粋に抽象的です。メソッドのシグネチャのみを定義でき、実装は定義できません。クラスはインターフェースを「実装」することで、インターフェースで定義された機能を提供することを約束します。

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

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

タイプ

抽象システム

混乱

基礎

使用法

広く普及している

前駆物質

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

アプリケーション

  • 特定のSQLクエリを隠蔽するデータベースアクセス層(DAL)
  • デバイスドライバは、オペレーティングシステムからハードウェアの複雑さを抽象化する。
  • graphical user interface (GUI) libraries providing high-level widgets
  • network protocols like HTTP abstracting the underlying TCP/IP communication
  • C++の標準テンプレートライブラリ(STL)

特許:

NA

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

ボットによるトラフィック(現在1日あたり4万件以上)を排除するため、このコンテンツはコミュニティメンバー限定となっています。
> ログイン < または > 登録 < (100%無料)でこれにアクセスできます。他のすべての制限付きコンテンツとツールも同様です。

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

歴史的背景

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

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

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

関連する発明、革新、および技術原理

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