Warning |
ログとして、原案のメモ(注: 単なる走り書き)をここに記録しておきます。 読みづらいですが、失礼。 |
Perl ではポリモーフィズムと実行時バインディングができることに 重視すること。多重継承などに頭を使うより ポリモーフィズムと実行時バインディングによる コンポーネント指向ぽい方向性を模索する。
Perl 5 のパッケージを使った、オブジェクトぽい書き方は 変数自身が自分のパッケージを知っているので、 単にパッケージ修飾(例: :: )を使わなくてもよいくらいに 思う方がよい。
そのために、 再利用性と抽象度を高くしたインターフェイスは オブジェクトぽい書きかたが良さそう。
Perl 5 だと必然的にオブジェクトぽくなってしまうが、 オブジェクト、オブジェクト、オブジェクトし過ぎないように バランス感覚に注意しよう。
他人のモジュールを使う場合はともかく、 自分達で書くモジュールでの ”深い”継承はできるだけ避けたい。 何でも深くすればよいというものではないでしょう。
libexec/ や libkern.pl にある関数は、 main:: に記述される部分は基本的なフローを記述している。 これらは基本的な枠組を示すものであるため、 $curproc (C でいえば struct *curproc にあたるもの) を受け渡す、構造化プログラミング的な書き方をしている。
しかし、そのひとつ下の層、そしてさらにその下では、 再利用性とポリモーフィズムに傾いた方がよさそうにおもえる。
author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.
For questions about FML, e-mail <fml-bugs@fml.org>.