1

我尝试了解RPackageTags:

  1. 似乎RPackageTags 就像子包一样?
  2. 与 OS X 中的标签不同,一项(这里是一类)不能有多个标签?
  3. 标签总是特定于RPackage? Package1-Tag1和Package2-Tag1的标签不相同,即是RPackageTag?的两个不同实例。
  4. 有可能Package1-Tag1只是一个RPackage,还有可能Package1-Tag1RPackage Package1RPackageTag Tag1的组合?

是对的吗?RPackageTag引入s背后的想法是什么?

RPackageTags 与 Monticello 包有什么关系?

4

2 回答 2

2

一些答案:

  1. 是的,它们就像子包
  2. 目前,是的。这是因为我们需要在 RPackage 和系统类别之间保持一些兼容性,并且我们决定(目前)该方案将是:RPackage+Tag = SystemCategory。这将在未来发生变化,通过删除系统类别并允许标签类似于 OSX 标签。
  3. 现在,是的......见第(2)点:)
  4. 你不能。这是因为将 RPackage+Tag 附加到 SystemCategory 也产生了组织问题:如果您有一个包 AB 和一个带有标签 B 的包 A,两者都将共享 SystemCategory AB...这对组织的组织非常不利系统。

当然,如您所见,这里真正的问题是系统中仍然存在一种古老的组织方式。这将在 Pharo4 或(很可能)在 Pharo5 中发生变化,现在我们需要接受这种方便的解决方案。

于 2014-08-11T09:33:37.067 回答
0

在 Pharo 3 中采用了环形包结构。大约已知的 MC 包变成了 RPachage,pure-smalltalk 类别消失并被RPackageTags 取代。您可以将其视为在 MC 包中创建分类类的一种方式。我不知道 Pharo 委员会将来会决定什么,但现在每个班级只能有 1 个标签。

于 2014-08-10T19:17:13.673 回答