主页 > 知识库 > Ruby使用Monkey Patch猴子补丁方式进行程序开发的示例

Ruby使用Monkey Patch猴子补丁方式进行程序开发的示例

热门标签:徐州网络外呼系统哪个好 白银外呼paas系统 湖州u友防封电销卡 地图标注赚钱项目注册 电销机器人厂商代理 常德电销平台外呼系统软件价格 滴滴外呼系统 高德地图标注客服 百度地图标注自定义图片

猴子补丁(Monkey Patch)是一种特殊的编程技巧。Monkey patch 可以用来在运行时动态地修改(扩展)类或模块。我们可以通过添加 Monkey Patch 来修改不满足自己需求的第三方库,也可以添加 Monkey Patch 零时修改代码中的错误。

词源
Monkey patch 最早被称作 Guerrilla patch,形容这种补丁像游击队员一样狡猾。后来因为发音相似,被称为 Gorilla patch。因为大猩猩不够可爱,后改称为 Monkey patch。

使用场景
以我的理解,Monkey patch 有两种使用场景:
紧急的安全性补丁,即 Hotfix;
修改或扩展库中的属性和方法。

例子:
alias:

class Monkey2  Monkey 
 def method2 
  puts "This is method2" 
 end 
  
 alias output method2 
end 
 
monkey = Monkey2.new 
monkey.method2 
monkey.output 

include:

module Helper 
 def help 
  puts "Help..." 
 end 
  
 def method1 
  puts "helper method1..." 
 end 
end 
 
class Monkey 
 include Helper 
 def method1 
  puts "monkey method1..." 
 end 
end 
 
monkey = Monkey.new 
monkey.help 
monkey.method1#因为重名,当前类的方法优先 


undef:

class Monkey 
 def method1 
  puts "This is method1" 
 end 
end  
 
class Monkey2  Monkey 
 def method2 
  puts "This is method2" 
 end 
end 
 
monkey = Monkey2.new 
monkey.method1  
monkey.method2 
 
class Monkey2 
 undef method1 
 undef method2 
end 
 
monkey.method1 
monkey.method2 

我们还可以使用undef_method或者remove_method实现undef method_name>同样的功能,例子如下:

class Monkey2 
 remove_method :method1 
 undef_method :method2 
nd 


在使用猴子补丁的时候,还应注意如下事项:
1、基本上只追加功能
2、进行功能变更时要谨慎,尽可能的小规模
3、注意相互调用

您可能感兴趣的文章:
  • monkeyrunner环境搭建及实例教程(3)
  • monkeyrunner 脚本录制实例详解
  • Android Monkey压力测试详细介绍
  • Android自动测试工具Monkey的实现方法
  • 详解Python编程中对Monkey Patch猴子补丁开发方式的运用
  • Monkey Patch猴子补丁编程方式及其在Ruby中的运用
  • Android自动测试工具Monkey
  • Android SDK命令行工具Monkey参数及使用解析

标签:张家界 荆门 普洱 公主岭 辽宁 梧州 三沙 永州

巨人网络通讯声明:本文标题《Ruby使用Monkey Patch猴子补丁方式进行程序开发的示例》,本文关键词  Ruby,使用,Monkey,Patch,猴子,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Ruby使用Monkey Patch猴子补丁方式进行程序开发的示例》相关的同类信息!
  • 本页收集关于Ruby使用Monkey Patch猴子补丁方式进行程序开发的示例的相关信息资讯供网民参考!
  • 推荐文章