monkey patch是什么样的技术?

2013-03-24 15:49:22 +08:00
 pythonee
各位大牛,你们日常中有用到这种技术吗?能讲讲应用场景,为啥要使用这个东西吗?
之前没有接触过这个东西,在书上读到这样一个词,wiki也就是一些定义,我想知道实际中的用途
6203 次点击
所在节点    程序员
8 条回复
ericFork
2013-03-24 16:23:12 +08:00
gevent 的 monkey patch 可以参考
dreampuf
2013-03-24 16:56:17 +08:00
chrome 的各种user-script
pythonee
2013-03-24 21:02:35 +08:00
@ericFork 能具体给出代码位置吗?原谅伸手党一下,因为的确接触不多
pythonee
2013-03-24 21:02:54 +08:00
@dreampuf user-script怎么也算monkey patch啊
dreampuf
2013-03-24 21:20:01 +08:00
@pythonee user-script也是一种动态修改手段
duhastmich
2013-03-24 21:30:54 +08:00
大概是修改原生类或者某个库提供的类(不是继承),比如js里可以通过改prototype,主要是让api 方便/好看/magic 一点吧
binux
2013-03-24 21:44:57 +08:00
A monkey patch is a way to extend or modify the run-time code of dynamic languages without altering the original source code.

严格意义上说,好像也不是很常用。。
pepsin
2013-03-24 22:38:57 +08:00
基本上是这样的,抓两个猴子,给他们几件衣裳,教他们缝线,他们就开始拿碎布打补丁了,偶尔会拿香蕉皮当布打上去。

开玩笑的,MonkeyPatch可能Ruby用的最多了。修改一些原生类或者修改一些大的模型的一些方法什么的。在一些小地方你可能需要一个类表现出另一种姿态,比如让print打印的时候默认加个“×”且你不希望自己在每个print都自己拼上那个“×”,这时候就需要MonkeyPatch一下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/63898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX