[#2560] ruby 1.0-970331 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#2571] a mailer written in ruby/Tk — aito@...5nazha.yz.yamagata-u.ac.jp (Akinori ITO)
あ伊藤@山形大学です。
まつもと ゆきひろです.
あ伊藤です。
まつもと ゆきひろです.
> 面倒でなければ自分でおいていただけるとありがたいです.
[#2592] FAQ — MAEDA Shugo <ender@...>
前田です。
まつもと ゆきひろです.
前田です。
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
金光です。FAQサーバ向けにとりあえず、質問だけ提出します(sjisから変換してください)。
[#2596] help — Masao Kanemitsu <masao-k@...>
金光です。調子が悪いので、看てやってください。
まつもと ゆきひろです.
In message <199704040609.PAA22926@castanet.caelum.co.jp>
まつもと ゆきひろです.
tk関係のサンプルが動いてくれなかった件ですが:
まつもと ゆきひろです
In message <199704071537.AAA28214@castanet.caelum.co.jp>
まつもと ゆきひろです.
In message <199704090735.QAA11322@castanet.caelum.co.jp>
まつもと ゆきひろです.
けいじゅ@SHLジャパンです.
In message <199704090856.RAA14093@castanet.caelum.co.jp>
わたなべです.
まつもと ゆきひろです.
わたなべです.
わたなべです.
まつもと ゆきひろです.
わたなべです.
まつもと ゆきひろです.
わたなべです.
まつもと ゆきひろです.
前田です。
大庭@SHLJapanです.
前田です。
大庭@SHLJapanです.
大庭@SHLJapanです.
前田です。
けいじゅ@SHLジャパンです.
まつもと ゆきひろです.
[#2619] Re: WWW library (Re: class design) — Shin-ichiro Hara <sinara@...>
原です。
[#2625] [Req] alias for singltone method — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
[#2655] Who is 'nobody' — sinara@...
原です。
[#2702] security model — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです.
[#2705] lineno ($.), English.rb — WATANABE Hirofumi <watanabe@...>
わたなべです.
[#2721] [BUG] File.umask — jkuro@... (Kuroda Jun)
黒田です。
まつもと ゆきひろです.
[#2726] Re: class design (Re: url escape) — takagi@... (TAKAGI Hiromitsu)
高木と申します。
[#2767] [BUG?] strip — MAEDA Shugo <ender@...>
前田です。
[#2819] ruby 1.0-970414 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#2829] configure script — TANAKA Shin-ichi <tanaka@...>
田中です。たびたびすみません。
[#2844] ruby 1.0-970422 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#2860] ruby 1.0-970425 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
黒田です。
まつもと ゆきひろです.
黒田です。
[#2876] how to init class? — lo_tek@... (MAEDA Shugo)
前田です。
[ruby-list:2841] Re: class design (Re: url escape)
まつもと ゆきひろです
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のような類似の機能)のある言語ではクラ
スは復数の仕様を持つことができますので,このような問題は起き
ません.
つまり,単純継承しかない静的な型のある言語ではポリモルフィズ
ムの利用が制限されることがあるので,「使いものにならない」と
いうわけです.