类别和包中的类组织如何在不同版本的Pharo中工作?

Hel*_*lbo 6 smalltalk pharo monticello

有人可以解释Pharo中的类组织如何在不同版本的Pharo中工作吗?

  • 所有类都是Smalltalk全球的一部分(一直以来,似乎保持这样?)
  • 类可以有一个类别,但那只是一种标签?(一直以来,似乎保持这样?但是类别有时会以某种方式映射到包裹?)
  • 不同版本的Pharo中有不同类型的包
    • 代表蒙蒂塞洛包裹的MCPackages
    • PackageInfo
    • RPackage(Pharo 1.4)?

另外还有SystemNavigation以某种方式帮助基于上面提到的一些构造导航类和方法?

Dal*_*chs 5

类是Smalltalk全局键的事实是实现细节.只要类名有一个全局命名空间,实现就可能保持不变.

类别

类类非常喜欢的标签.一个类一次只能在一个类别中.最初,类别Browser用于组织系统中的类.

Monticello创建时,类类别被重载以指示蒙蒂塞洛包中的成员资格,MCPackage并且PackageInfo创建了类来管理此映射.

PackageInfo 做所有繁重的工作:找到属于包的类和松散的方法.

MCPackage是一个特定于蒙蒂塞洛的包装器,PackageInfo它增加了一些不一定适合更一般的协议PackageInfo.

重载包类成员资格的类类别是一个简单的技巧,以便于采用Monticello(现有的开发工具不需要教Monticello),但是,它仍然是一个技巧.更不用说实施PackageInfo效率不高的事实.

RPackage创建是为了解决PackageInfo下一代开发工具的性能问题并将其用作下一代开发工具的一部分.

两种包实现都将继续存在,直到PackageInfo逐步淘汰.

SystemNavigation

正如弗兰克所说,

SystemNavigation是一个类,顾名思义,允许轻松查询许多不同的东西:图像中的类,发送者,实现者,关于图像中加载的包的信息等等.