オブジェクト指向とRuby<株入門>

先に進む前に、ちょっとだけ面倒くさい話。
トレードと関係ないけど、前回のつづき、

 
オブジェクト指向のクラス継承という考え方を、そのまま利用してる場合と、
それに似た、Ruby独特の機能である、Moduleのインクルードの利用。

クラス継承だけでも代価出来るような気がします。
ただ、オブジェクト指向そのものの弱点でもあるのですが、
継承関係は重く、複雑になるとと手に負えなくなります。

例えば、通信機器という親クラスがあって、そこから電話クラスが継承し、
電話をさらにスマフォというクラスが継承したとして。
一方、撮影機器という親クラスをカメラというが継承。
このときスマフォクラスはカメラクラスを継承するのかどうか、

親クラスが2つ存在してしまいます。
これを多重継承といいますが、こういうことが起こると面倒くさい。
どんどん肥大化していって、折角クラスで機能を分けたのにグチャグチャに。
なので、スマフォは電話を唯一の親として、
カメラの機能だけ取り込み(インクルード)したい。

で、クラスとせず機能(モジュール)の取り込み。
という考え方が生まれた。
ここまでは、理解しておくと、インジケータの準備もスムーズです。
 
 
で、こっからはワタクシ個人の意見であり、愚痴です。
モジュールのインクルードは、
他の言語でのインターフェイスとかもにも似た概念です。
スマファのカメラ機能のような問題を解決するには有効です。

だけど、もう複雑過ぎる。
特に、Rubyの場合、型チェックをしません。
だったら、こんな区別敢えてしなくていいじゃん。
全然軽量じゃないじゃん。

ググってみると、
継承とインクルードの違いは使ってる人でも分かりにくいらしいです。
そもそも、そんな理解を強いることの方が、軽量って発想と相反すると思います。

記述の省略が魅力のRubyですが、
それ以外のところでオリジナリティ出しても恩恵あったでしょうか。
複雑だけど、必要だから仕方ない機能なら、
他の言語と一緒で良かったと思いますよ。

そうじゃないなら、
クラスだけ用意して他の概念は導入しない方が良かった。

 
質問コーナー、お問い合わせは、sanpome.net@gmail.com まで。

  
 

社会・経済ニュース ブログランキングへ

にほんブログ村 海外生活ブログへ
にほんブログ村

カテゴリー: 株式投資, 株式投資入門はじめました2016.05 タグ: , , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*