[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 11443] Re: 真のオブジェ クト指向 (Re: 俗流オブジェクト指向 )



UML否定派の村山@NETGENEです.

> 「オブジェクト指向スクリプト言語Ruby」まつもとゆきひろ/石塚圭樹共著,アスキー.
> http://www.amazon.co.jp/exec/obidos/ASIN/4756132545/249-7439198-1782733
> の,第4章「Rubyオブジェクト指向プログラミング」
> 第5章「Rubyオブジェクト指向設計」
> あたりが,チュートリアルとして意外に良くできてました.

久しぶりに,ちょっと眺めてみました.
関係ありそうなところを,かいつまんで引用します.

--------------
「オブジェクト指向プログラミングとは『オブジェクトに注目したプログラミン
グ』ならなんでも良いと言うことになるわけですが,実際にはそれだけではなく
て,さらに3つの概念を含まないものはあまりオブジェクト指向プログラミング
とは呼ばないようです.その三つの概念とは,

1,カプセル化(情報隠蔽)
2,ポリモルフィズム(動的結合)
3,継承

です.」
#まつもとゆきひろ氏もエッフェル塔本は読破してるらしいので,
#この辺も元を辿ればエッフェル塔本になるのでしょう.

「残念なことにオブジェクト指向の考え方を本当に身につけるには,実際にオブ
ジェクト指向プログラミングを行って経験を積むよりほかに効果的な方法はない
ようです.(脚注:少なくとも原稿執筆時点では.将来的にはもしかしたら素晴
らしい方法が発見されてるかも.いや,やっぱり無理かな.)」

「このような事柄を学ぶために昔から言われていることは『ワザは教わるのでは
なく盗むのだ』ということです.自分でクラスを設計する(そして失敗を数多く
経験する)ことは素晴らしいことですが,他の人の作ったプログラムも情報の宝
庫です.プログラムを『鑑賞』することによって,多くのことを学ぶことが出来
ます.真のプログラマはプログラムから学ぶのです.」

「OOA/OODの方法論について言えることは,これらの方法論からオブジェクト指
向の考え方を身につけるのはかなり難しいと言うことです.OOA/OOD方法論から
オブジェクト指向を学んだ人の中には,妙に堅苦しく考えてオブジェクト指向の
考え方を狭めてしまっている人もたくさんいるようです.一方,ある程度オブジ
ェクト指向プログラミングの経験のある人がOOA/OOD方法論を学ぶと,今までの
漠然としたやり方が整理されたと感じる傾向があるようです.方法論そのものが
よくないわけではないので,負ぶえjくと指向の考え方を正しく身につけた上で,
適切な局面で使うことはとても有意義だと思います.」

「いわゆるオブジェクト指向の考え方の基礎になるのはやはりオブジェクト指向
プログラミングです.」

「プログラムの開発の中でオブジェクトの抽出はおそらく一番難しい作業です.
というのも,オブジェクトの抽出にまつわる要求や制約がいろいろに関わってき
て,複雑な条件を考慮する必要があり,また答が一通りとは限らないので,機械
的に抽出できないからです.」

「『オブジェクトは問題記述の内の名詞(で表現される概念)である』という考
えの方もいます.この考えは多くの場合真実ですが,名詞であるがオブジェクト
でないものも,名詞で表現されてなくても結局はオブジェクトになるものもある
ので,こだわりすぎるのも考え物です.」

--------------
この辺りの意見には概ね同意出来ます.
#というか,普通の話ですよね.これが.
#一部ではなぜか俗流オブジェクト指向によって歪められてるだけ.

それにしても見れば見るほどRubyはJavaの対極にあるオブジェクト指向言語
だと実感します.同じオブジェクト指向言語とはいうものの,設計方針とか
実装とかプログラミングスタイルとかがまるで違う.実に興味深い.