校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 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猴子補丁方式進行程序開發的示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 昌图县| 楚雄市| 枞阳县| 牟定县| 仁化县| 北安市| 滨州市| 深泽县| 治多县| 方城县| 张家港市| 林甸县| 枞阳县| 油尖旺区| 株洲市| 左云县| 正阳县| 高雄县| 承德县| 于都县| 德惠市| 曲周县| 高淳县| 天峨县| 涞源县| 晋中市| 曲阜市| 昌邑市| 太仆寺旗| 洛隆县| 临夏县| 西充县| 建始县| 通河县| 华亭县| 淄博市| 叙永县| 五河县| 南平市| 健康| 繁峙县|