[#2571] a mailer written in ruby/Tk — aito@...5nazha.yz.yamagata-u.ac.jp (Akinori ITO)

あ伊藤@山形大学です。

19 messages 1997/04/02

[#2592] FAQ — MAEDA Shugo <ender@...>

前田です。

21 messages 1997/04/03
[#2595] Re: FAQ — matz@... (Yukihiro Matsumoto) 1997/04/04

まつもと ゆきひろです.

[#2596] help — Masao Kanemitsu <masao-k@...>

金光です。調子が悪いので、看てやってください。

71 messages 1997/04/04
[#2597] Re: help — matz@... (Yukihiro Matsumoto) 1997/04/04

まつもと ゆきひろです.

[#2598] Re: help — Masao Kanemitsu <masao-k@...> 1997/04/04

In message <199704040609.PAA22926@castanet.caelum.co.jp>

[#2599] Re: help — matz@... (Yukihiro Matsumoto) 1997/04/04

まつもと ゆきひろです.

[#2653] Re: tk trouble — Masao Kanemitsu <masao-k@...> 1997/04/07

tk関係のサンプルが動いてくれなかった件ですが:

[#2670] Re: tk trouble — matz@... (Yukihiro Matsumoto) 1997/04/07

まつもと ゆきひろです

[#2708] Re: tk etc. — Masao Kanemitsu <masao-k@...> 1997/04/09

In message <199704071537.AAA28214@castanet.caelum.co.jp>

[#2709] Re: tk etc. — matz@... (Yukihiro Matsumoto) 1997/04/09

まつもと ゆきひろです.

[#2713] Re: tk etc. — Masao Kanemitsu <masao-k@...> 1997/04/09

In message <199704090735.QAA11322@castanet.caelum.co.jp>

[#2714] Re: tk etc. — matz@... (Yukihiro Matsumoto) 1997/04/09

まつもと ゆきひろです.

[#2717] Re: tk etc. — WATANABE Hirofumi <watanabe@...> 1997/04/09

わたなべです.

[#2720] Re: tk etc. — matz@... (Yukihiro Matsumoto) 1997/04/09

まつもと ゆきひろです.

[#2739] Dynamic linking (Re: tk etc.) — WATANABE Hirofumi <watanabe@...> 1997/04/10

わたなべです.

[#2740] Re: Dynamic linking (Re: tk etc.) — WATANABE Hirofumi <watanabe@...> 1997/04/10

わたなべです.

[#2744] Re: Dynamic linking (Re: tk etc.) — matz@... (Yukihiro Matsumoto) 1997/04/10

まつもと ゆきひろです.

[#2760] Re: Dynamic linking (Re: tk etc.) — WATANABE Hirofumi <watanabe@...> 1997/04/11

わたなべです.

[#2761] Re: Dynamic linking (Re: tk etc.) — matz@... (Yukihiro Matsumoto) 1997/04/11

まつもと ゆきひろです.

[#2762] Re: Dynamic linking (Re: tk etc.) — WATANABE Hirofumi <watanabe@...> 1997/04/11

わたなべです.

[#2763] Re: Dynamic linking (Re: tk etc.) — matz@... (Yukihiro Matsumoto) 1997/04/11

まつもと ゆきひろです.

[#2765] Re: Dynamic linking (Re: tk etc.) — MAEDA Shugo <ender@...> 1997/04/11

前田です。

[ruby-list:2841] Re: class design (Re: url escape)

From: matz@... (Yukihiro Matsumoto)
Date: 1997-04-18 15:28:16 UTC
List: ruby-list #2841
まつもと ゆきひろです

In message "[ruby-list:2840] Re: class design (Re: url escape)"
    on 97/04/18, 吉田芳浩 <yoshida@sun-se.tokyo.ish.cae.ntt.jp> writes:

|よしだ@NTT.rubyをコンパイルする環境がない(^^;  です。

gnu win32版を使えばコンパイルする必要はないですよん.

|> そんなにないですよ.ただ静的型の言語ではなんらかの形で多重継
|> 承に類似した機能がないと使いものにならないことが明らかになっ
|> ていますので,単純継承しかない言語であるJavaにもクラス階層を
|> またがって仕様を共有するinterfaceは必須であったと思います.
|
|この、使いものにならないことが明らかになっている、というのはどういう
|ことですか?
|多重継承は機能を持っていても、使うときには気をつけよ、というのは
|聞いたことがあるのですが、どういう点で多重継承(的なこと)が必要
|なのか、という観点のお話は初見なもので。 

あまり上手に説明する自信がないので,わからない時にはMeyerの
「オブジェクト指向入門」でも読んでもらうとわかるのではないか
と思うのですが,とりあえず説明してみます.

静的な型のあるオブジェクト指向言語では引数の型も静的に指定す
る必要があります.よって,ある引数の正当な値は特定のクラスの
サブクラスのインスタンスである必要があります.

ここで単純継承しかない言語の場合,問題が発生することがありま
す.たとえば,あるデバイスに図形を出力したいので以下のような
設計にしたとします.

        class Device
          def output(data:Output)
            ...
          end
        end

これをみるとDeviceクラスに対して出力したいものはOutputクラス
のサブクラスである必要があります.たとえばこんな感じです.


        class Output
          def output(device:Device)
            ..
          end
        end

        class Text<Output
          def output(device:Device)
            ..
          end
        end

ところがTextは別なメソッドの引数として渡すためにOtherクラス
のサブクラスである必要も出て来ました.しかし,単純継承しかな
い言語ではそれは不可能です.んで,委譲などを利用して不自然な
クラス設計になることが多いと思われます.

rubyのような動的な型しかない言語ではあるメッセージを理解でき
るかどうかで決まりますから,このような問題は起きません.また
多重継承(またはinerfaceのような類似の機能)のある言語ではクラ
スは復数の仕様を持つことができますので,このような問題は起き
ません.

つまり,単純継承しかない静的な型のある言語ではポリモルフィズ
ムの利用が制限されることがあるので,「使いものにならない」と
いうわけです.

In This Thread

Prev Next