6

誰かがPharoのクラスの編成がPharoのさまざまなバージョンでどのように機能するかを説明できますか?

  • すべてのクラスはSmalltalkグローバルの一部です(これまでずっと、このままでいるように見えますか?)
  • クラスはカテゴリを持つことができますが、それは一種のタグにすぎませんか?(これまでずっと、このままでいるように見えますか?しかし、カテゴリはどういうわけかパッケージにマッピングされることがありますか?)
  • ファロのさまざまなバージョンにはさまざまな種類のパッケージがあります
    • モンティセロパッケージを表すMCPackages
    • PackageInfo
    • RPackage(Pharo 1.4)?

さらに、上記の構造のいくつかに基づいてクラスとメソッドをナビゲートするのに何らかの形で役立つSystemNavigationがありますか?

4

2 に答える 2

5

クラス

クラスがSmalltalkグローバルのキーであるという事実は、実装の詳細です。クラス名に単一のグローバル名前空間がある限り、実装は同じままである可​​能性があります。

クラスカテゴリ

クラスカテゴリタグに非常によく似ています。クラスは、一度に1つのカテゴリにのみ含めることができます。もともと、クラスカテゴリはBrowser、システム内のクラスを整理するためにによって使用されていました。

が作成されると、クラスカテゴリがオーバーロードされ、 MonticelloパッケージMonticelloメンバーシップも示され、このマッピングを管理するためにクラスが作成されました。MCPackagePackageInfo

PackageInfoパッケージに属するクラスとルーズメソッドを見つけるという、すべての面倒な作業を行います。

MCPackageはモンティセロ固有のラッパーでPackageInfoあり、より一般的なに必ずしも適切ではなかったプロトコルを追加しますPackageInfo

パッケージ

パッケージメンバーシップのクラスカテゴリをオーバーロードすることは、採用を容易にするための巧妙なトリックでしたMonticello(既存の開発ツールを教える必要はありませんでしたMonticello)が、それでもトリックです。PackageInfoの実装があまり効率的ではなかったという事実は言うまでもありません。

RPackageのパフォーマンスの問題に対処し、PackageInfo次世代の開発ツールの一部として使用するために作成されました。

PackageInfo両方のパッケージ実装は、段階的に廃止されるまで存在し続けます。

SystemNavigation

フランクが言うように、

SystemNavigationは、その名前が示すように、イメージ内のクラス、送信者の、実装者の、イメージにロードされたパッケージに関する情報など、さまざまなものを簡単にクエリできるクラスです。

于 2012-06-21T15:58:38.940 に答える
4

クラスは、少なくとも現時点では、Smalltalk辞書のキーです。

PackageInfoクラスのグループ化と他のパッケージへの拡張に関する情報が含まれています。

Monticelloパッケージには、デプロイ可能なコード単位が含まれています。通常、これらの1つはPackageInfoインスタンスに対応します。(たとえば、Monticelloブラウザで[+ Package]ボタンを押すと、これらのいずれかが作成されます。)Monticelloパッケージには、プリロードスクリプトとポストロードスクリプトが含まれている場合があるため、2つのクラスは、関連する場合は別々の機能を実行します。

SystemNavigationは、その名前が示すように、イメージ内のクラス、送信者の、実装者の、イメージにロードされたパッケージに関する情報など、さまざまなものを簡単にクエリできるクラスです。

于 2012-06-21T12:12:58.420 に答える