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