このビデオでは Nautilusでの小技をお見せします。
ちなみに Nautilus(ノーチラス)は
ジュール・ベルヌの「海底2万海里」 に出てくる潜水艦の名前です。
Nautilus は海中を航海できるので
Pharo にとてもとてもピッタリなのです。
OrderedCollection クラスを見てみましょう。
Collection-Sequenceable パッケージで 定義されています。
このパッケージには システムのコアなクラスがいくつか入っています。
Array(配列)クラスやInterval(区間)や LinkedList(連結リスト)があります。
このパッケージを見れば
OrderedCollection クラスがあり そのサブクラスに SortedCollectionがあります。
ほかには
グラフィカルには表示されませんが
OrderedCollection は SequenceableCollection のサブクラスです。
ときどき
スーパークラスの中だけを 辿って見たいことがあります。
どのメソッドが再定義されているかとか そういうことです。
そのためには Inheritance をクリックしてください。
つまり階層を見るのです。 OrderedCollectionのスーパークラスの
SequenceableCollection と その階層が見えます。
また、OrderedCollectionのサブクラスで 他のパッケージに格納されている
他のサブクラスが見えます。 そして
SortedCollection はOrderedCollectionの サブクラスだとわかります。
黒字で表示されているので これは
OrderedCollectionと同じパッケージです。
同じようにブラウズして
他のパッケージに格納されている メソッドを見ることができます。
ここで スーパークラスを見ている時に
このモードを選択するのをやめたら どうなるでしょう？
そのクラスのパッケージが見えます。
つまり、SequenceableCollection クラスが
Collection-Abstract パッケージに 格納されています。
ではここでもう一度 Inheritanceを見たらどうでしょう。
SequenceableCollection の 全てのサブクラスと全てのスーパークラスが
見えます。
SequenceableCollection は
同じパッケージのCollection を継承して
同じパッケージの ArrayedCollectionを定義しています。
階層がとても大きいことがわかります。
OrderedCollection を探さなければなりません。 OrderedCollection はここにありました。
さて また OrderedCollection を選択して
また Inheritance をクリックしたら
元のパッケージである Sequenceable に戻ります。
スタート地点に戻りました。
ここでお見せしたのは Nautilus を使って
パッケージを無視して 継承に従ってブラウズできることです。
ただし今どのパッケージをブラウズしているか 表示しながら。