『オブジェクト指向と哲学』
オブジェクト指向
ソフトウェアをオブジェクトと呼ばれる部品の集まりとして構築する技術
オブジェクト:個々の具体的なもの
クラス:オブジェクトを一般化した抽象概念
本書では主に分類と分解により抽象概念を整理する
分類
抽象概念の分類による階層構造=汎化関係
「 is-a 関係」
分解
概念を分解し、ひとつの概念が複数の別の概念から構成されていると捉える=集約
「 has-a 関係」
プラトン イデア論
クラス:不変
オブジェクト:変化
アリストテレス
「五感で認識できるものが先にあって、それらを基にして人間が頭の中で概念として創りだしたものをイデアと呼んでいるにすぎない、というのが自然な考え方である」
問題領域から具体的オブジェクトを抽出し、それらをグルーピングしてクラスを見つけていく
形相と質料
形相:操作
質量:属性:
オブジェクト:操作+属性
存在:形相因・質料因・始動因・目的因
what「それは何か」:形相因 + 質料因
why「それは何故存在するか」:始動因 + 目的因