Product Design, Manufacturing & Innovation Resources
家 » ポリモーフィズム(プログラミング)

ポリモーフィズム(プログラミング)

1967
  • Christopher Strachey
コードスニペットを用いてポリモーフィズムを実証するコンピュータプログラミングワークスペース。

(画像はイメージです)

ポリモーフィズムは、ギリシャ語で「多くの形」を意味し、異なるクラスのオブジェクトを共通のスーパークラスのオブジェクトとして扱うことを可能にします。これにより、次のような単一のインターフェースが可能になります。 方法 一般的なアクションのクラスに使用される名前。具体的なアクションは、実行時のオブジェクトの正確な型によって決定されます。これは多くの場合、メソッドのオーバーライドによって実現されます。

ポリモーフィズムは、柔軟で疎結合なコードを書くことを可能にする強力な概念です。最も一般的な形式は オブジェクト指向プログラミング サブタイプ多態性とは、継承とメソッドのオーバーライドによって実現されるものです。サブクラスが、スーパークラスで既に定義されているメソッドに対して特定の実装を提供する場合、それはオーバーライドと呼ばれます。スーパークラス型の変数は、そのサブクラスのオブジェクトを参照できます。この変数に対してメソッドが呼び出されると、実行されるメソッドのバージョンは、変数の型ではなく、オブジェクトの実際のクラスに属するものになります。この決定は実行時に行われ、動的ディスパッチまたは遅延バインディングと呼ばれるプロセスです。

例えば、スーパークラス「Shape」に「calculateArea()」メソッドがあるとします。サブクラス「Circle」や「Rectangle」などは「Shape」を継承し、「calculateArea()」の独自の実装を提供できます。プログラムは、「Circle」と「Rectangle」の両方のインスタンスを含む「Shape」オブジェクトのリストを持つことができます。リストを反復処理して各要素に対して「calculateArea()」を呼び出すと、各図形に対して適切な計算式が自動的に使用されます。これにより、各オブジェクトの型をチェックするための長いif-else文やswitch文が不要になり、より簡潔で拡張性の高いコードになります。新しい図形は、それらを処理するコードを変更することなくシステムに追加できます。

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

タイプ

抽象システム

混乱

増分

使用法

広く普及している

前駆物質

  • C言語のような言語における関数ポインタの概念
  • 一般的なプログラミング概念
  • 継承は、サブタイプ多型に必要なクラス階層を提供する。
  • 柔軟で拡張可能なソフトウェアシステムの必要性

アプリケーション

  • 単一の `draw()` メソッド呼び出しを使用して、さまざまな形状 (円、正方形) を描画する
  • 汎用的な print() 関数を使用して、さまざまなドキュメントタイプ (pdf、word) を処理する
  • 実施 ユーザーインターフェース イベントハンドラー
  • 異なるが関連性のある型のオブジェクトを格納できる汎用コレクション
  • 依存性注入フレームワーク

特許:

NA

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

  • pluggable data serialization formats (e.g., json, xml, protobuf) using a common interface
  • generic device drivers in an operating system for different hardware
  • strategy design pattern for interchangeable algorithms
  • universal rendering pipelines in graphics engines that handle different material types
  • middleware systems that process various types of network requests
  • financial transaction processors handling different payment methods (credit card, paypal, crypto)
  • a/b testing frameworks that can swap out different user interface components
  • data processing pipelines that can connect to various data sources (databases, apis, files)
  • robotic control systems that can operate different types of actuators through a unified api
  • interchangeable cryptographic algorithm providers in a security framework
関連キーワード: ポリモーフィズム、オーバーライド、動的ディスパッチ、遅延バインディング、サブタイプ、インターフェース、抽象化、オブジェクト指向プログラミング、メソッドオーバーライド、ランタイム。

歴史的背景

ポリモーフィズム(プログラミング)

1956
1960
1967
1967
1970
1970
1970
1953
1960
1960
1967
1970
1970
1970
1970

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

10年目 周年

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