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

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




>私は逆にAPLはやったことないですが(そういう人の方が多数派だと
>思う(^^;)、やっぱり、「悪魔の関数」と言われてしまうよう類の
>ものなんですよね。

私は上司にニューラルネットワークのプログラムをポンと渡されて、
メンテナンスさせられたのですが、読んでみたらニューロンのノードを
動的にコード生成して実行していたのでたまげました。
「悪魔の関数」と呼んでいるのは私だけだと思います。

>Serializableの例については...

これは「シリアライズ可能だよ」という型宣言みたいなもので、
シリアライズのための実装は任意にしてよいというだけだと
思うのですが。

>もし、ClonableやSerializableが、
>
>  「デフォルトの実装を持ったインタフェース」
>
>だったとしたら、clone はClonableに付ければいいし、readObject
>やwriteObjectはSerializableに付ければいいわけです。Objectの
>メソッドにしたり、リフレクション使って無理矢理呼び出すのに比
>べれば、はるかに自然です。

この辺の議論はJavaHouse MLでかなりありましたよ。
トピックスから読むとたくさん読めると思います。

>イベントアダプタみたいなふざけたク
>ラスも要りません。

自分で JavaBeans を書くときは書かなくてもよいし、
使いたくなければ使わなければよいです。

どちらかというとAdapterは、プログラマーが書くためではなく、
RADツールみたいなもののためにあるような気がするのですが。

>コンポジションで保持しているオブジェクトに処理を委譲するため
>の「皮」のメソッドを、いくつもいくつも書いてると空しくなって
>くることはないでもないですが。

複雑なケースをやったことが無いので...

逆にアクセッサーを書くときは空しいです。

このMLで出たJavaの拡張案では、
予約語に property と read と write を追加するというのがありました。

>Pythonはやったことないですが、グローバル変数ってありませんで
>したっけ? たしか。(記憶不鮮明です。ウソである可能性大)

私も Python 入門中なので不明です。^^;

>Javaには関数へのポインタはないですが、実行時に、コールするメ
>ソッドを切り替えるという意味からすれば、インタフェースだけで
>なく、継承時のメソッドオーバライドも関数ポインタ的ですね。

書き方があいまいでしたが、
この場合のポインターはポインター変数のつもりでした。

関数ポインター(型の変数)は関数の入れ物、
interface型の変数はあるメソッドを実装しているオブジェクトの入れ物です。

>Cで、関数へのポインタを使うようなところは、Javaでは、メソッ
>ドオーバライドで実現したり、インタフェースで実現したり、だと
>思います。

オーバーライドで実現している例が思い浮かばないのですが
たとえばどんなときでしょう。

># 私は X-toolkitからOOPの道に入った邪道プログラマなのでした。

私は、書いてお金をもらったはじめての言語は ESP (ObjectiveなProlog) です。^^;
-- 
えんどう やすゆき <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/ (Java互助会ホームページ)