“猴子补丁”(monkey patch)指的是使函数名指向另一个函数。
这个名字里的“猴子”(monkey)和真实的动物猴子没有任何生物学或实体关联,它是编程领域的一个形象比喻,名字的由来与“猴子”的俚语含义有关。
为什么叫“猴子”补丁?
在英语中,“monkey”作为动词时有一个俚语含义:“瞎弄、乱搞、笨拙地修改”(to meddle with or tamper with something)。比如短语“monkey with the system”就是“瞎折腾系统”的意思。
而“猴子补丁”的核心行为是在运行时动态修改代码(如函数、类、模块)的行为,这种修改往往是临时的、“不按常理出牌”的(比如不修改源码却改变功能),类似于“偷偷摸摸地瞎改代码”。因此,人们用“monkey”来比喻这种“灵活但略显随意”的修改方式,加上“patch”(补丁),就有了“monkey patch”这个术语。
举个例子理解“猴子”的比喻
假设你有一个正常运行的程序(类似一台精密机器),而“猴子补丁”就像:
- 你不拆开机器(不修改源码),也不重新制造零件(不重新编译),而是趁机器运行时,伸手进去“临时换了个零件”(动态修改某个函数或类的行为),让机器以新的方式工作。
这种“不按常规流程、临时修改”的行为,就像“猴子瞎摆弄机器”,因此得名“猴子补丁”。
总结
“猴子补丁”中的“猴子”是俚语比喻,形容这种动态修改代码的方式像“瞎弄、临时改动”,与真实的猴子(动物)没有关系。它的核心是“运行时动态修改”,名字只是为了形象描述这种灵活但可能带点“ hack 性质”的编程技巧。