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

2023-12-20

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

  • 所有类都是 Smalltalk 全局的一部分(一直都是,似乎一直这样?)
  • 类可以有一个类别,但这只是一种标签? (一直都是,好像还是这样?但有时类别会以某种方式映射到包?)
  • There are different kinds of Packages in different Versions of Pharo
    • 代表 Monticello 包的 MCPackages
    • 封装信息
    • R 包(Pharo 1.4)?

此外,还有 SystemNavigation 以某种方式帮助基于上述某些构造导航类和方法?


Classes

事实上,类是关键Smalltalkglobal 是一个实现细节。只要类名有一个全局命名空间,实现就可能保持不变。

班级类别

班级类别is非常像一个标签。一个类一次只能属于一个类别。最初,类类别是由Browser用于组织系统中的课程。

When Monticello创建后,类类别被重载以指示某个成员的成员资格蒙蒂塞洛套餐 theMCPackage and PackageInfo创建类来管理此映射。

PackageInfo完成所有繁重的工作:查找属于包的类和松散方法。

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

Packages

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

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

两个包的实现都将继续存在,直到PackageInfo可以逐步淘汰。

系统导航

正如弗兰克所说,

SystemNavigation 是一个类,顾名思义,它允许轻松 查询许多不同的事物:图像中的类, senders-of、implementors-of、有关加载的包的信息 图像等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • MVC控制器(Controller)与策略模式(Strategy)

    MVC控制器 Controller 与策略模式 Strategy 转载时请注明出处和作者联系方式 http blog csdn net absurd 作者联系方式 Li XianJing
  • function/bind的救赎(上)

    本文转自孟岩的博客 http blog csdn net myan article details 5928531 这是那篇C 0X的正文 太长 先写上半部分发了 Function bind可以是一个很简单的话题 因为它其实不过就是一个泛型
  • csdn大师孟岩老师为本书作序——“未来属于动态语言”

    如果你想掌握Ruby 这本书是最好的起点 如果你想运用Ruby 这本书也是案头必备 所以 如果你已经决定要走入Ruby的世界 那么这本书是必经之路 而本不需要一篇 推荐序 问题在于 我们为什么还要学习一种新的语言 特别是当Ruby整体上仍然
  • 框架(Framework)

    框架 Framework 框架 Framework 是整个或部分系统的可重用设计 表现为一组抽象构件及构件实例间交互的方法 另一种定义认为 框架是可被应用开发者定制的应用骨架 前者是从应用方面而后者是从目的方面给出的定义 可以说 一个框架是
  • GNU Smalltalk - 继承和多参数方法/构造函数

    假设我正在尝试将以下 Java 类转换为 GNU Smalltalk public abstract class Account protected String number protected Customer customer pro
  • Pharo 中的彩色窗口主题?

    如何在 Pharo 中切换到彩色窗口主题 不确定你指的是哪个主题 但你尝试过吗 世界菜单 gt 系统 gt 设置 gt 外观 gt 形态 gt 用户界面主题 选择框将让您选择窗口颜色主题
  • 在 Centos 7.4x 上将 OSSubprocess 添加到我的 Pharo 6.1 时出现错误

    我想搞乱OSSubprocess 由马里亚诺 马丁内斯 佩克 来自 CentOS 7 4 上的 Pharo 6 1 我在 内搜索了Pharo Project Catalog并尝试安装它 我收到一个错误 ioLoadModule home s
  • GOF 中提到的可插拔适配器

    Stack Overflow 上与此主题相关的帖子 Post 1 and Post 2 上面的帖子很好 但我仍然无法解答我的困惑 因此我将其作为新帖子放在这里 我的问题基于 GOF 的可重用的面向对象软件的元素关于可插拔适配器的书籍内容 在
  • Smalltalk 块 - 我可以显式设置返回值并停止执行该块吗?

    value 消息发送到块时的返回值是该块中最后一句的值 所以 1 2 3 4 value评估为7 我发现有时很难使用 有没有办法显式设置返回值并停止执行块 作为练习 尝试在不使用我想象的 return 消息的情况下重写此块 看看它会变得多么
  • 在正则表达式替换中捕获字符串

    根据我从 Pharo 正则表达式文档中收集到的信息 我可以定义一个正则表达式对象 例如 re foo re bar asRegex 我可以通过以下方式将匹配的正则表达式替换为字符串 re copy foobar blah rebar rep
  • Smalltalk 如何操作调用堆栈帧(thisContext)?

    Smalltalk 对象thisContext看起来奇怪又奇妙 我不明白它是什么以及它是如何工作的 甚至它如何实现延续 对于 C 的调用堆栈 我可以轻松想象它是如何实现和工作的 但对于这个 我不能 请帮助我理解它 我认为这不是一个简单的问题
  • 在 Object 类中实现 #doesNotUnderstand 如何导致在 Squeak Smalltalk 中打开调试器?

    我知道该实施标志着MessageNotUnderstood异常 但是最终如何打开调试器呢 当异常在发出信号后仍未处理时 其 defaultAction被调用 MessageNotUnderstood gt gt defaultAction
  • 从 Smalltalk 中的集合生成所有组合

    我已经看到这个问题在 C 和其他语言中得到解决 但在 Smalltalk 中却没有得到解决 我有3个集合 例如 a 3 4 5 b 4 1 2 c 5 2 3 我需要做出所有可能的组合 i 即 3 4 5 3 4 2 3 4 3 3 1 5
  • 为什么这个类/实例变量没有被初始化?

    我正在尝试使用 gnu smalltalk 在以下带有变量的简单类的代码中 我发现它没有初始化为给定值 Object subclass Myclass mainval mainval 555 getmainval mainval gc My
  • 如何在 Pharo/Squeak 中从 WindowsProcess 的 stdin 读取并写入 stdout?

    我找到了一种运行命令的方法Windows 10异步 现在我尝试通过它的标准输入 标准输出与它进行通信 我是通过 Python 完成的 我运行了 python exe 进程 向其发送了一个类似 print 1 9 的字符串 并得到了结果 10
  • Pharo 5 无头模式下的调试

    我正在无头模式下使用 RFB 运行 pharo 5 海边 pharo vm display null vm sound null app pharo5 Pharo5 0 image no quit 在本地运行良好 带有 XFCE 的 Ubu
  • Smalltalk 中的 self 和 self 有什么区别?

    在 Smalltalk 中 方法体中经常出现两个术语 self and yourself 它们之间有什么区别 保留字self是一个伪变量 不能分配给它 它引用使用它的方法的当前接收者 另一方面yourself是一条消息 您可以发送给任何对象
  • 在没有 GUI 的服务器上运行 Smalltalk?

    我有一个相当明显的问题 我想在生产服务器上运行 Smalltalk 而不使用图形界面 VW 或 Pharo 甚至 Squeak 可能实现这一点吗 我有一个没有 X 的 VPS 托管 并且希望在 Smalltalk 上运行一些网站 同时使用成
  • GNU Smalltalk 80 调试器。如何调试smallcode代码?启动调试器?

    在 GNU Smalltalk 80 中 可以用您自己的普通代码编写 Smalltalk 代码 个人选择的文本编辑器 因此 调试代码非常重要 首先 将文件另存为 txt 文件 然后 您可以使用 工具 从程序员文本编辑器中打开该文件 这里的工
  • Pharo Smalltalk 中的 For 循环 for 数组

    我正在尝试创建一个包含随机数 仅 0 或 1 的数组 但是当我运行它时 它只打印以下内容 遇到语句列表结尾 gt 这是我的代码 GenList lista lista Array new 31 1 to 30 do i lista at i

随机推荐

  • Instagram API 无法找到有关私人档案的信息

    我的问题非常类似于this https stackoverflow com questions 23600510 instagram api getting feed of private user whom the authorised
  • 用于插件部署的 Eclipse 最小配置

    我现在正在开发eclipse插件 默认的 eclipse 下载包含很多我的插件不需要的插件 它会导致 eclipse 文件夹的大小大于所需的大小 所以我想知道是否有任何方法可以创建这样最小的 Eclipse 配置 以便它能够加载我的插件并且
  • protobuf-net 是否支持可为 null 的类型?

    是否可以在 protobuf net 中生成可为 null 的成员 message ProtoBuf1 optional Int32 databit 1 optional Nullable
  • 如何更改 Android 上文件选择器标题的外观?

    我想显示一个文件选择器来使用以下代码打开图像 Intent intent new Intent intent setType image intent setAction Intent ACTION GET CONTENT startAct
  • iPhone 中出现“无法在设备上上传 *.app”错误

    我在设备上上传应用程序时遇到错误 它确实安装了它 但无法上传它 我还想在设备上运行仪器工具 但当我运行时它什么也没有显示 任何面临同样问题的人 在更改配置文件和应用程序 ID 后 我遇到了这个问题 是什么为我解决了这个问题 退出 XCode
  • 使用嵌套对象访问 jsonpath 元素

    我希望从数组和对象的 JSON 路径中提取某些值 并使用这些值进行进一步处理 并且正在努力访问这些元素 这是 JSON 响应 od pair 7015400 8727100 buckets bucket C00 original 2 ava
  • Junit 中的远程 PhantomJS 驱动程序

    如何在 junit 中使用远程 phantomjs 驱动器配置 selenium 我一直在尝试寻找这方面的教程 但没有成功 我的目标是使用它在 spring mvc 中对我的单页应用程序进行测试 经过一番尝试和错误后 我得到了以下解决方案
  • 按住键盘输入时犹豫?

    有谁知道为什么当您按住键盘按键并尝试处理它时会有些犹豫 我正在 WinProc 中调用一个函数 当按住某个键时 该函数将移动屏幕上的图像 OpenGL 我按下它并得到一个响应 然后大约有 0 5 秒没有任何反应 然后它表现正常 每个 Win
  • JTable setCellRenderer 将文本字段格式化为最新?

    我有一个 SQLite 数据库 其日期存储为VARCHAR 年 月 日 例如 2013 01 25 我的查询从表中检索记录并将其显示为存储的状态 我需要显示VARCHAR数据在我的JTable如 2013 年 1 月 25 日星期五 我怀疑
  • Excel - 找到第n个匹配项

    我创建了一个 赞 来跟踪商品的库存 我正在查找 下一个可用日期是哪一天 我用索引匹配函数找到了答案 但问题是 对于每个订单 可以承诺什么 当我的运行总计未包含在下一个 库存到达 中时 如何找到 第二个 最佳匹配 下一个到达 也许是我想太多了
  • 用户会话和在同一台计算机上运行的两个 CakePHP 应用程序

    I have 2 CakePHP 应用程序在同一台机器上运行 它们都需要事先注册才能访问它们 用户首先看到的是登录表单 我意识到 当我登录其中一个应用程序时 我可以访问另一个 Web 应用程序 而不会被要求提供登录凭据 这是不正确的 在我的
  • 如果父 pom 具有 Java EE BOM 依赖项,是否应该在子 pom 中显式提及所有依赖项?

    在我们的项目中 我们有 REST 层 EJB 层和域 实体 层的单独模块 以下是对 REST 层的依赖
  • 如何在所有单元格周围的空白区域中接收 UICollectionView 上的触摸

    我有一个UICollectionView里面有不同的物品 当我点击一个项目时 我使用 void collectionView UICollectionView collectionView didSelectItemAtIndexPath
  • Three.js 实时动画

    我正在使用 Three js 并对一些对象进行动画处理 我使用 Three js 的 animate 函数对对象进行动画处理 基本上是这样的 function animate object position z 不幸的是 这被称为每个渲染帧
  • 一组三个字段的哈希码

    我有三个字段 即 Number1 Number2 Time 我正在尝试用 java 编写一个返回唯一哈希值的函数 long 需要是 hash 的返回类型 对于上述字段 然后 该哈希将用于存储与哈希集中上述字段相对应的数据库行 我是编写哈希代
  • Android Facebook SDK 3.0 无需显式登录即可简单更新状态?

    我想知道更新用户 Facebook 状态的最简单方法 我想简单地显示一个 共享 按钮 当用户触摸 共享 时 如果他们已经登录 Facebook 则会出现一个对话框 让他们可以选择在提交到 Facebook 之前编辑自己的帖子 如果他们尚未登
  • eval 和反引号(反撇号)之间的区别

    谁能告诉我这里最大的区别是什么以及为什么后者不起作用 test ls l 现在两者都工作正常 eval test echo test 但在这种情况下 test ls l gt gt test log eval test echo test
  • 将日期设置为未来 10 天,格式为 dd/mm/yyyy(例如 21/08/2010)

    我非常感谢您帮助创建一些 JavaScript 这些 JavaScript 最终将在 Selenium 中使用 自动设置当前日期前 10 天的日期 并以以下格式 dd mm yyyy 显示 我目前有下面的脚本 但我没有得到任何结果 var
  • 在 WPF 中设置主题

    我有一个相对简单的问题 我似乎无法弄清楚 我已经从 Internet 下载了一些 XAML 格式的主题文件 我想将它们用作我的 WPF 应用程序中的主题 你怎么做到这一点 感谢所有帮助 将 theme xaml 文件添加到您的项目中 右键单
  • 类别和包中的类组织在不同版本的 Pharo 中如何工作?

    有人可以解释一下 Pharo 中的类组织在不同版本的 Pharo 中是如何工作的吗 所有类都是 Smalltalk 全局的一部分 一直都是 似乎一直这样 类可以有一个类别 但这只是一种标签 一直都是 好像还是这样 但有时类别会以某种方式映射