当前位置:  开发笔记 > 后端 > 正文

undef - 你为什么要在ruby中取消定义一个方法?

如何解决《undef-你为什么要在ruby中取消定义一个方法?》经验,为你挑选了1个好方法。

在任何其他编程语言中,我从未见过undef - 或任何其他允许你取消定义方法的东西.为什么Ruby需要它?

编辑:我不是在争论这个有什么问题.我只是不明白在运行时定义方法的目的?那是什么意思?怎么用?我从来没有用C或Java做过这个.



1> LDomagala..:

Ruby中还有一个需要该undef功能的空白类模式.

我们的想法是从新课程中删除每个方法,以便您对其进行的每个通话结束#method_missing.通过这种方式,您可以实现一个真正的代理,只需将所有内容随机播放.无论你的目标类有多大,用这个实现装饰器模式大约有十行代码.

如果你想看到这个习惯用法看看Ruby的一个模拟框架,他们会很多地使用它.像flexmock之类的东西.

另一个例子是基于某些条件动态地将函数添加到类中.在游戏中,您可以#attack在玩家对象上添加一个方法,然后在他瘫痪时将其取走而不是使用布尔标志.这样,调用类可以检查方法的可用性而不是标志.我并不是说这是一个好主意,只是因为这是可能的,而且有更聪明的人,然后我想出了有用的东西来做这件事.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有