From: matz@... (Yukihiro Matsumoto) Date: 1998-02-09T14:02:20+09:00 Subject: [ruby-list:6351] Re: ruby's design policy (Re: I'd like to su bscr ibe this ML) まつもと ゆきひろです In message "[ruby-list:6349] Re: ruby's design policy (Re: I'd like to su bscr ibe this ML)" on 98/02/09, 助田 雅紀 writes: |助田です。 |ちょっとしつこかったかも知れないです。 メールのしつこさでは負けません(笑) |C++だと、多重継承使えるけど、私は、本当に多重継承でなきゃ駄目 |なのか、考えるし、多重継承しないで委譲とかで実現できるのだったら |多重継承しないですね。 そういう人ばかりだと言語デザイナーも苦労が無いのですが. |(最近は、単一継承の場合でも結構慎重だったりします。継承ってプロ | グラムの構造がわかりにくくなるような気がしてて。) 私は「継承は活用すべきだ」というか,それこそがオブジェクト指 向言語を使っているメリットだと考えています.もっともC++の場 合,オブジェクト指向機能なんか使わないで,便利な機能(オーバー ローディングやデフォルト引数)だけ使ってればいいや,って思う 時の方が多いんですけど. んで,「継承を使うとプログラムの構造がわかりにくくなる」点に ついてですが,そういう場合は大体クラス設計に問題があることが 多いような気がします.それだけクラス設計が難しいってことなん ですが,それとは別にオブジェクト指向プログラミングには「制御 の流れが継承ラインに沿って上下に頻繁に移動する」という問題が あります.普段はあまり問題にならないのですが「スーパークラス が信頼できない時,継承の階層が深かったりするとバグが何処にあ るのか発見するのが大変になる」という大問題の原因になります. ですから,継承を使う時には「安定したスーパークラス」と「深す ぎない継承」ってのは結構重要な気がします.Mix-inは継承を浅く するのにも貢献する場合があります. |なんかちょっとすっきりした気がします。 それはよかった. まつもと ゆきひろ /:|)