翻訳 : "Object" In Wikipedia, The Free Encyclopedia
- この記事はクリエイティブ・コモンズ・表示・継承ライセンス3.0の下で公表されたウィキペディアの項目Object (computer science) - Wikipediaを素材として英語から日本語に翻訳するという形で二次利用しています。
- この記事のテキストはクリエイティブ・コモンズ・表示・継承ライセンス3.0の下で利用可能です。
- この記事は、コンピュータサイエンスに関する技術および英語についての正確な知識のない翻訳者が個人的な勉強を目的として、ほぼ全てを意訳によって翻訳したために、極めて多くの誤訳が含まれていると想定される決して質が高いとは言えない文章を公開しているものです。ここに掲載されている情報を使用したことによる、読者の方または第三者に生じる損害および損失について、翻訳者は一切の責任を負いません。正しい情報が必要な場合は原文を参照してください。
CSにおいて、オブジェクトとは、変数、データ構造、関係、メソッドなどでありうる。値を持つメモリー内にあり、識別子で参照される。
クラスベースのオブジェクト指向プログラミングのパラダイムでは、「オブジェクト」はオブジェクトが変数、関数、データ構造の集まりでありうるクラスの特定のインスタンスを指し示す。
リレーショナルデータベースのマネジメントでは、オブジェクトはテーブルないしはカラムであったり、データと(特定の人に年齢を関連付けるような)データベースのエンティティの間の関連でありうる。
オブジェクト・ベースの言語
プログラミング言語における重要な特徴はオブジェクト指向言語とオブジェクト・ベース言語の間の違いである。言語は通常、オブジェクト・ベースでポリモーフィズムと継承ができれば、オブジェクト指向言語と考えられる。ポリモーフィズムは、どのオブジェクトが渡されるかによって、多数の振る舞いをする関数の名前をオーバーロードする能力を指す。因習的なメッセージ渡しでは、最初のオブジェクトだけで区別して、オブジェクトに対して「メッセージを送った」と考える。しかしながら、Flavors、CLOMのようないくつかのOOP言語では、関数の最初のパラメータ以上をもとに区別できる。継承は、存在しているクラスのサブクラスとなる新しいクラスを作り、親の全てのデータ拘束と振る舞いを受け継くが、一つまたは複数のの新しいまたは(かつ)変更を追加する能力のことだ。
オブジェクト指向プログラミング
オブジェクト指向プログラミングは、モジュールを再利用できるソフトウェアシステムの設計方法である。オブジェクト指向の方法はコンピュータプログラミングの最初期にまで遡ることができる素晴らしいデザインの習慣の進化である。オブジェクト指向は構造化プログラミングや抽象データ型のようなより古い技術の単純な延長線上にある。オブジェクトはポリモーフィズムと継承が加わった抽象データ型である。
オブジェクト指向のシステムは、コードとデータとしてプログラムを構成するのではなく、「オブジェクト」の概要を使った二つを統合する。オブジェクトは状態(データ)と振る舞い(コード)を持つ。オブジェクトは現実世界のものと対応することもある。だから例えば、グラフィックプログラミングでは、円、四角形、メニューなどがオブジェクトとしてあるだろう。オンラインショッピングシステムでは、ショッピングカート、顧客、製品といったオブジェクトがあるだろう。ショッピングシステムには、注文、支払い、割引などの振る舞いがあるだろう。オブジェクトは階層的なクラスとして設計される。だからショッピングシステムの例では、電化製品、キッチン用品、本などの高水準のクラスがありうる。電化製品としてのさらに洗練された例としてCDプレイヤーやDVDプレイヤーなどがあるかもしれない。これらのクラスとサブクラスは数学の論理学における集合や部分集合と対応している。
特殊なオブジェクト
オブジェクトにとっての重要な概念はデザイン・パターンだ。デザイン・パターンとは共通する問題に対処するため再利用できるテンプレートである。以下にオブジェクトは、オブジェクトについての最も一般的なデザイン・パターンの例の一部を示す。
- Function object: an object with a single method (in C++, this method would be the function operator, "operator()") that acts much like a function (like a C/C++ pointer to a function).
- Immutable object: an object set up with a fixed state at creation time and which does not change afterward.
- First-class object: an object that can be used without restriction.
- Container object: an object that can contain other objects.
- Factory object: an object whose purpose is to create other objects.
- Metaobject: an object from which other objects can be created (compare with a class, which is not necessarily an object).
- Prototype object: a specialized metaobject from which other objects can be created by copying
- God object: an object that knows or does too much (it is an example of an anti-pattern).
- Singleton object: an object that is the only instance of its class during the lifetime of the program.
- Filter object.
分散オブジェクト
オブジェクト指向の方法はプログラミングモデルに限らず、分散システムのためのインタフェース記述言語としてもまた上手く使うことができる。分散コンピューティングモデルでのオブジェクトは、プログラミングオブジェクトと比べて、より大きく、より長い時間存在し、よりサービス指向の傾向にある。
分散オブジェクトをまとめる標準的な方法はIDLだ。IDLは分散サーバーオブジェクトのすべての詳細からクライアントを保護する。詳細というのは、オブジェクトがどのコンピュータにあるのか、どのプログラミング言語が使われているのか、どのOSか、他のプラットホームの固有の問題などである。IDLは、トランザクションや持続性といったサービスを同じ方法でオブジェクトに提供する分散環境の一部として通常は使われる。 Object Management GroupのCORBA と MicrosoftのDCOM が分散オブジェクトとして有名な二つである。
省略
セマンティック・ウェブ
省略
関連項目
- Object lifetime
- Object copy
- Design pattern (computer science)
- Business object (computer science)
- Actor model
参考文献
省略
外部リンク
省略