プロトタイプベース・プログラミングとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > プロトタイプベース・プログラミングの意味・解説 

プロトタイプベース・プログラミング

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/27 00:07 UTC 版)

Self」の記事における「プロトタイプベース・プログラミング」の解説

詳細は「プロトタイプベース」を参照 本来のオブジェクト指向言語は以下の双対関係基づいている: クラスオブジェクト基本的な機能振る舞い定義する。 オブジェクト・インスタンスはあるクラス個別具現である。 例えば、Vehicle クラスオブジェクト「名前」持ち、「運転」とか「建材を運ぶ」といった機能を持つとする。Porsche 911Vehicle クラス1つオブジェクトインスタンス)で、「ポルシェ 911」という「名前」を持つとする。理論的にPorsche 911 に対して建材運べ」というメッセージを送ることができる。 この例はオブジェクト指向はらんでいる問題示している。ポルシェはどう考えて建材を運ぶのには適さないが、モデル化された Vehicle にはその機能与えられている。より適したモデル生成するには Vehicle特殊化施したサブクラス使えばよい。例えば、Sports Car とか Flatbed Truck である。この場合、Flatbed Truck クラスオブジェクトだけが「建材を運ぶ」という機能持てばよい。一方Sports Car にその機能与えるのは間違いであり、単に高速に運転できればよい。 このような問題プロトタイプという考え方生む要因となったクラスオブジェクト将来どのような機能を持つようになる確実に予測できないと、クラス階層正しく設計することはできないのであるSmalltalkのような初期オブジェクト指向言語では、この手問題頻繁に生じたシステムある程度まで成長すると、全体として硬直化起きて、特に基本的なクラス群は相互の関連縛られ機能追加が困難となる。 Smalltalk のような動的言語では、クラス変更によって容易にオブジェクト振る舞い変えられるという特徴でこれに対処できる。しかし、このような変更注意深く行われるべきである。さもなくば変更されクラス所属する挙動変更されるきでないオブジェクトは「誤った挙動示してしまう。この問題脆弱な基底クラス問題一つである。一方でC++のように、基底クラス派生クラス別々にコンパイルできる言語では、事前にコンパイルした派生クラスメソッドに、基底クラスでの変更派生しない。この問題脆弱な基底クラス問題もう一つ形式であり、脆弱なバイナリ・インターフェース問題一つでもある。 Self や他のプロトタイプベース言語では、クラスとオブジェクト双対関係排除されている。 何らかのクラス」に基づくオブジェクトの「インスタンス」を作るではなくSelf では既存オブジェクトコピーし、それに修正加える。従って、Porsche 911作るには、他の Vehicle オブジェクトコピーし、「高速運転」メソッド追加すればよい。コピー元となるオブジェクトを「プロトタイプ」と呼ぶ。この技法によりダイナミズム劇的に単純化されと言われている。既存オブジェクトモデルとして不適切であった場合プログラマは単にオブジェクト修正加えて正し振る舞いをするようにして、それを新たなプロトタイプとして使えばよい。既存オブジェクト使っているコードそのまま使うことができる。

※この「プロトタイプベース・プログラミング」の解説は、「Self」の解説の一部です。
「プロトタイプベース・プログラミング」を含む「Self」の記事については、「Self」の概要を参照ください。

ウィキペディア小見出し辞書の「プロトタイプベース・プログラミング」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「プロトタイプベース・プログラミング」の関連用語

プロトタイプベース・プログラミングのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



プロトタイプベース・プログラミングのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのSelf (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS