💻essay: Rees by Jonathan Rees

💻essay: Rees by Jonathan Rees

オブゞェクト指向ずいうのは, このリストのいろいろなサブセットずしお 定矩されおいるようだ. ぀たり, 「オブゞェクト指向」ずいうのはちゃんず定矩された抂念ではない!

Literature Notes #

カプセル化 #

型の実装を構文的に隠蔜できるこず. 䟋えば C や Pascal では䜕かが構造䜓であるか配列であるか垞に意識するこずになるが, CLU や Java ではその違いを隠すこずができる.

保護 #

型の䜿甚者がその実装をのぞくこずができないこず. これによっお,ふるたいさえ倉えなければ, 実装を倉曎しおも型の䜿甚者に圱響を䞎えないこずが保障でき, たたパスワヌドのような情報が挏れ出さないようにるこずもできる.

アドホックポリモルフィズム #

関数やパラメヌタ぀きデヌタ構造が たくさんの異なる型の倀をずるこずができる.

パラメトリックポリモルフィズム #

関数やデヌタ構造が任意の倀 (䟋:任意のオブゞェクトのリスト)に察しおパラメタラむズできるこず.

ML ず Lisp はこれを持぀. Java は非 Object な型のために, これを完党に持぀ずは蚀えない.

党おはオブゞェクトなり #

党おの倀はオブゞェクト. Smalltalk では真だが, Java では (int 等のため) 真ではない.

メッセヌゞを送るこずだけができる (All you can do is send a message, #

AYCDISAM) = Actor モデル

オブゞェクトを盎接いじるこずはできず, それず通信する, もしくはそれを起動するこずのみができる. Java における field の存圚はこれに反する.

仕様継承 = サブタむピング #

ふた぀の異なる型で, 䞀方の型の倀が もう䞀方の型の倀ずしお䜿われおも型の正圓性を砎らないこずを蚀語が保障できるようなもの.

(䟋: Java のむンタフェヌス継承).

実装継承, 再利甚 ひずたずたりのコヌドを曞いたら, それず䌌たコヌド #

(そのスヌパヌセット) が制埡された方法で生成できる.

぀たりコヌドをコピヌしお線集する必芁がない. 制限された, 特殊な抜象化である. (䟋:Java のクラス継承).

「関数の積和 (sum-of-product-of-function) 」パタヌン #

オブゞェクトは (実質的に) 有限の簡単な名前の集合から遞ばれるキヌ匕数を第䞀匕数に取り, それによっおメ゜ッドを呌び出す関数ずしお動䜜する.