gpt4 book ai didi

smalltalk - 在 Smalltalk 中使用 doesNotUnderstand 转发消息

转载 作者:行者123 更新时间:2023-12-03 20:05:39 26 4
gpt4 key购买 nike

我有一个关于重新定义消息 doesNotUnderstand: 的问题在闲聊中。我想要做的是将一个对象接收到的所有不被理解的消息转发到它所知道的另一个对象。我的问题来自这样一个事实,即两个对象(接收者和转发对象)都具有由父类(super class)继承的相同协议(protocol),并且当消息不被对象的特定协议(protocol)理解但如果它被继承的理解协议(protocol),它执行继承的消息而不是 doesNotUnderstand: (因此不转发消息并调用父类(super class)消息)。

我非常感谢您的帮助,问候!

最佳答案

据我了解,您有一种情况,您想转发一条消息,但转发的人(我们称之为代理对象)理解它,所以 doesNotUnderstand:未在代理中调用。

您有两种可能的解决方案。首先(一般来说),代理对象应该继承自ProtoObject。以避免继承任何默认行为。但如果这不是一个真正的代理对象(基本上传递所有内容),那么您需要覆盖应该转发的消息并调用 doesNotUnderstand: (或您的转发代码)直接。

关于smalltalk - 在 Smalltalk 中使用 doesNotUnderstand 转发消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62454552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com