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

[jfriends] Re: Serializableインタフェース




やっとinterfaceの話しになってきましたね。

>リフレクションという機能自体が悪いとは言いませんが、実行中に
>文字列を組み立てて自由にメソッドが呼べるっつーのは、昔の
>BASICにあった(COBOLにも昔はあったんでしたっけ)、GOTO文の行番
>号を式で与える奴みたいで、この使い方はちと凶悪じゃないですか、
>と私なんかは思うわけですけれども、皆さんどう思われますでしょうか。

リフレクションについてはちゃんと勉強していないのでごめんなさい。

私は行番号のあるBASICはまるでダメだったので、
超マイナー言語 APL の話しを。

APL では文字列でプログラムを動的に生成して、
実行関数という「悪魔の関数」で実行させるなんて言うことを
よくやっていました。

>  インタフェースがデフォルトの実装を持てない
>
>ことに起因しているわけですよね。

逆に、interface が実装を持たなければならない理由はあるのでしょうか。
interface って言うのは実装じゃなくて「型」なのでは?

>そもそも、Javaで多重継承を廃した理由ってのは、何なんでしたっけ?

多重継承が必要な局面というのがよく分かりません。
多重継承がなくてもコンポジションでほとんど何とかなるのでは?

Ruby にはまだほとんど触れていないのですが、
グローバル変数があるというのを知ってめげています。

Python は Shift-JIS を使わなければとてもハッピーです。:)

なぜ Java に interface があるか、ですが、
クラスを離れた関数が無いから関数ポインターは無くて、
interface があるのではないかと思っています。
(それだけじゃないとは思いますが)

# そう言えば初めて書いた C++ プログラムで、
# 関数ポインターだけのクラスを書いたのを思い出した。^^;
# C の関数のラッパーになるだけのいいかげんなクラスでした。
-- 
えんどう やすゆき <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/ (Java互助会ホームページ)