- オブジェクト指向なんて今すぐやめてください
491 :デフォルトの名無しさん[sage]:2014/07/03(木) 11:46:21.47 ID:0tabs9DN - >>487
プログラムするのは人間だからコンピュータがなにかを生成するわけじゃないけど モジュールに役割と責任を与えることで責任の所在を分離する。 「これを今日中に○○商事まで届けてくれ」というミッションに対して 従来の考え方ではプログラムはあくまで入力を実行する道具(関数)でしかないから 「12:30の電車に乗ってこのルートでここで降りてこの道を行け」という 上層が細かい指示と責任を持つ形式に陥りがちだったものを ルートと時間はオブジェクトの側で責任を持ち自分で判断するように作ることで 最初の命令に対して「電車が止まってるんですけど…」「道が工事中ですが?」を 上層の命令ミスではなく当該オブジェクトの機能の問題として責任分離(バグの局所化)ができる。 命令を「電車で〜」と上層が手段を指示するのではなく あくまで目的の「届けろ」と限定することで、「アメリカ支局に」と大幅に 目的地が変更されても上層部の実装は変えずに モジュール側が飛行機に選んで乗れるようにするだけで済む。 そういうモジュール分離と責任移譲の考え方>オブジェクト指向 歴史でなにが酷いって、よりによってオブジェクト指向を大々的に名乗ったC++が ここの部分をムダ要素として切り捨てて単に継承と再利用を オブジェクト指向の主要素とした言語だったってこと。 JavaとかもっとファンダメンタルなObjective-Cが再発見されるまで 一番大事なとこが伝わりゃしなくてみんなで そこにはいないオブジェクト指向の意義を議論してたという…
|