免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2635 | 回复: 1
打印 上一主题 下一主题

Module方法调用好不好 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-20 15:49 |只看该作者 |倒序浏览
Module方法调用好不好








以前说,用module给class加singleton方法,和extend到类include到类的instance
现在看看这个


Ruby代码
  1. 1.module Prober   
  2. 2.  def probe_invoke(type, data = {})   
  3. 3.    p = Probe.new({:probe_type => type.to_s,   
  4. 4.        :data => data.to_json, :probe_status => 0, :retries => 0})   
  5. 5.    p.save   
  6. 6.  end  
  7. 7.end  
  8. module Prober
  9.   def probe_invoke(type, data = {})
  10.     p = Probe.new({:probe_type => type.to_s,
  11.         :data => data.to_json, :probe_status => 0, :retries => 0})
  12.     p.save
  13.   end
  14. end
复制代码
掉的时候

Ruby代码
  1. 1.require 'prober'  
  2. 2.include Prober   
  3. 3.probe_invoke("send_sms", sms_text)  
  4. require 'prober'
  5. include Prober
  6. probe_invoke("send_sms", sms_text)
复制代码
Ruby代码
  1. 1.module Prober   
  2. 2.  def Prober.probe_invoke(type, data = {})   
  3. 3.    p = Probe.new({:probe_type => type.to_s,   
  4. 4.        :data => data.to_json, :probe_status => 0, :retries => 0})   
  5. 5.    p.save   
  6. 6.  end  
  7. 7.end  
  8. 8.  
  9. 9.Prober.probe_invoke("send_sms", sms_text)  
  10. module Prober
  11.   def Prober.probe_invoke(type, data = {})
  12.     p = Probe.new({:probe_type => type.to_s,
  13.         :data => data.to_json, :probe_status => 0, :retries => 0})
  14.     p.save
  15.   end
  16. end

  17. Prober.probe_invoke("send_sms", sms_text)
复制代码
Ruby代码
  1. 1.module Prober   
  2. 2.  
  3. 3.  class << self  
  4. 4.  
  5. 5.    def probe_invoke(type, data = {})   
  6. 6.      p = Probe.new({:probe_type => type.to_s,   
  7. 7.          :data => data.to_json, :probe_status => 0, :retries => 0})   
  8. 8.      p.save   
  9. 9.    end  
  10. 10.  
  11. 11.    # more module instance methods ...   
  12. 12.  
  13. 13.  end  
  14. 14.  
  15. 15.end  
复制代码

论坛徽章:
0
2 [报告]
发表于 2011-11-22 18:10 |只看该作者
我也常
instance_method.extend module_name
扩展单态方法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP