【问题标题】:What are RPackageTags? How are they related to Monticello Packages?什么是 RPackageTags?它们与蒙蒂塞洛包有什么关系?
【发布时间】:2014-08-10 18:49:09
【问题描述】:

我尝试了解RPackageTags:

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

是这样吗?引入RPackageTags 背后的想法是什么?

RPackageTags 与 Monticello 包有什么关系?

【问题讨论】:

    标签: smalltalk pharo monticello


    【解决方案1】:

    一些答案​​:

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

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

    【讨论】:

    • 4.我当然不是同时的意思。但是系统中似乎有很多包的名字像Bar-Foo,而且只是一个包而不是带标签的包?
    • 您可以使用“升级”和“降级”菜单选项从一个移动到另一个。
    【解决方案2】:

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

    【讨论】:

    • RPackage 和 Ring 是两个不同的框架,它们之间是正交的。 RPackage 的目的(“R”的意思是“Real”,而不是“Ring”)是组织系统中的类,而 Ring 的目的是在“活”对象和“死”对象(系统中的对象和历史中的对象)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2019-07-22
    • 2012-03-12
    • 2012-01-11
    相关资源
    最近更新 更多