pharo 2.0 smalltalk中已标记和未标记的类

塔默·莫格拉比(Tamer Mograbi)

我需要在pharo中实现与子类相同的消息markedSubclass,但我需要对创建的类进行某种方式的标记,例如,我尝试在创建它后添加一个唯一的实例变量,但它无法正常工作,也许我将其添加到错误的位置。要求是:

  1. 即使已通过子类(不是markedSubclass)创建了该标记类的每个子类,也都应对其进行标记。
  2. 除了标记类应该像普通类一样起作用。任何帮助,将不胜感激。

例子:

User markedSubclass: #MarkedUser
User subClass: #UnmarkedUser
MarkedUser subclass: #MarkerUser2

我需要以某种方式知道MarkedUser和UnmarkedUser都是标记的类。我最近想到的是向Class类添加方法“ isMarked”,这样所有的类都会拥有它,并且每个类都会相应地覆盖它,因此如果我们编写

User class isMarked.

它会返回false,但是如果我们这样写:

MarkedUser class isMarked.
MarkedUser2 class isMarked.

两者都将返回true。但是我可以在哪里添加此方法?如何在运行时使类覆盖该方法?

马丁·W

在您的User班级中添加如下所示的班级方法

markedSubclass: className
    | subclass |
    subclass := self subclass: className asSymbol.
    subclass class compile: 'isMarked', String cr, String tab, ' ^ true'.
    ^ subclass

然后在工作区中尝试:

User markedSubclass: 'MyMarkedSubclass'

相应地添加一个#unmarkedSubclass:类方法。

然后,您可以覆盖类中的常规#subclass:方法,User以设置与接收者相同的标记。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

findTokens:在Pharo与Dolphin Smalltalk中

来自分类Dev

pharo smalltalk 中的调用方法

来自分类Dev

pharo中的事件系统

来自分类Dev

在Pharo中覆盖<

来自分类Dev

pharo中的Windows UI

来自分类Dev

Pharo中的XMLParser声称U + 00A0为“无效的UTF-8”

来自分类Dev

在Pharo Smalltalk中以编程方式创建和删除类

来自分类Dev

在Pharo或Smalltalk中创建构造函数

来自分类Dev

Pharo Smalltalk中的代表团

来自分类Dev

在Smalltalk(Pharo)中嵌套“ if”(又称为“ switch”)

来自分类Dev

在Pharo Smalltalk中向后迭代集合

来自分类Dev

Windows上的Smalltalk(Pharo)中的标准输入

来自分类Dev

如何理解Pharo Smalltalk中的语法构造?

来自分类Dev

如何关闭 pharo 中的 logToTranscript?

来自分类Dev

如何修复StrikeFont»doesNotUnderstand:#glyphRendererOn:在Pharo 3上的Roassal 2中渲染文本时

来自分类Dev

如何修复StrikeFont»doesNotUnderstand:#glyphRendererOn:在Pharo 3上的Roassal 2中渲染文本时

来自分类Dev

如何在Pharo中获得* all *类?

来自分类Dev

将GNU Smalltalk项目导入Pharo吗?

来自分类Dev

在Pharo中FileDirectory和ReferenceStream类是否等效?

来自分类Dev

如何在Pharo Smalltalk中实现切换

来自分类Dev

Pharo smalltalk + Seaside中的计时器回调

来自分类Dev

如何从Pharo删除所有测试类?

来自分类Dev

什么代表此pharo类图标?

来自分类Dev

Pharo Smalltalk-如何列出类别中的所有类(又名“包装”或“标签”)?

来自分类Dev

在Pharo v3中等待

来自分类Dev

在Pharo中,“ Installer squeaksource”等效吗?

来自分类Dev

如何在Voyage for Pharo中禁用缓存?

来自分类Dev

如何在Pharo中采样概率分布

来自分类Dev

如何修复Pharo中的自动代码格式?

Related 相关文章

热门标签

归档