濮阳杆衣贸易有限公司

主頁 > 知識庫 > Ruby使用Monkey Patch猴子補丁方式進行程序開發(fā)的示例

Ruby使用Monkey Patch猴子補丁方式進行程序開發(fā)的示例

熱門標簽:徐州網(wǎng)絡(luò)外呼系統(tǒng)哪個好 白銀外呼paas系統(tǒng) 湖州u友防封電銷卡 地圖標注賺錢項目注冊 電銷機器人廠商代理 常德電銷平臺外呼系統(tǒng)軟件價格 滴滴外呼系統(tǒng) 高德地圖標注客服 百度地圖標注自定義圖片

猴子補丁(Monkey Patch)是一種特殊的編程技巧。Monkey patch 可以用來在運行時動態(tài)地修改(擴展)類或模塊。我們可以通過添加 Monkey Patch 來修改不滿足自己需求的第三方庫,也可以添加 Monkey Patch 零時修改代碼中的錯誤。

詞源
Monkey patch 最早被稱作 Guerrilla patch,形容這種補丁像游擊隊員一樣狡猾。后來因為發(fā)音相似,被稱為 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#因為重名,當前類的方法優(yōu)先 


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實現(xiàn)undef method_name>同樣的功能,例子如下:

class Monkey2 
 remove_method :method1 
 undef_method :method2 
nd 


在使用猴子補丁的時候,還應(yīng)注意如下事項:
1、基本上只追加功能
2、進行功能變更時要謹慎,盡可能的小規(guī)模
3、注意相互調(diào)用

您可能感興趣的文章:
  • monkeyrunner環(huán)境搭建及實例教程(3)
  • monkeyrunner 腳本錄制實例詳解
  • Android Monkey壓力測試詳細介紹
  • Android自動測試工具Monkey的實現(xiàn)方法
  • 詳解Python編程中對Monkey Patch猴子補丁開發(fā)方式的運用
  • Monkey Patch猴子補丁編程方式及其在Ruby中的運用
  • Android自動測試工具Monkey
  • Android SDK命令行工具Monkey參數(shù)及使用解析

標簽:張家界 荊門 普洱 公主嶺 遼寧 梧州 三沙 永州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Ruby使用Monkey Patch猴子補丁方式進行程序開發(fā)的示例》,本文關(guān)鍵詞  Ruby,使用,Monkey,Patch,猴子,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ruby使用Monkey Patch猴子補丁方式進行程序開發(fā)的示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于Ruby使用Monkey Patch猴子補丁方式進行程序開發(fā)的示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    永善县| 迭部县| 玉田县| 柳林县| 中超| 汾西县| 呼伦贝尔市| 汤原县| 阿城市| 区。| 江门市| 普兰店市| 永济市| 南召县| 高陵县| 南平市| 安多县| 丰县| 三穗县| 湟中县| 东城区| 天镇县| 汪清县| 南安市| 高青县| 台前县| 景德镇市| 萍乡市| 克什克腾旗| 绵阳市| 昌乐县| 巴楚县| 保德县| 三亚市| 东港市| 晋宁县| 卢氏县| 白水县| 广丰县| 西昌市| 康平县|