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

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

热门标签:企业做大做强 客户服务 语音系统 百度AI接口 Win7旗舰版 电话运营中心 呼叫中心市场需求 硅谷的囚徒呼叫中心

猴子补丁(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猴子补丁方式进行程序开发的示例》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266