rails动态定义实例方法和类方法
来源:互联网 发布:淘宝王子团队怎么联系 编辑:程序博客网 时间:2024/05/21 19:40
在写代码的时候经常会出现一些这样的情况:
obj.method(type,arg1,arg2..argn)
为了更好理解,我们也经常写成这个样子:
obj.method_type1(arg1,arg2..argn)obj.method_type2(arg1,arg2..argn)obj.method_typen(arg1,arg2..argn)
在ruby元变成中介绍过很多关于精简这些代码的方法,其中有一个define_method,我觉得是解决这种问题不错的方案,方法如下:
[type1,type2....typen].each do |type| define_method "method_#{type}".to_sym do |arg1,arg2...argn| obj.method(type,type1,type2...typen) endend
那么如果需要优化的是类方法呢?比如:
method(type,arg1,arg2..argn)
这种其实原理也一样,主要是需要铭记一点,就是在ruby中,一切皆对象,当前的类本身也是一个对象。那么上面的其实可以这样写:
(class << self; self; end).instance_eval do [type1,type2....typen].each do |type| define_method "method_#{type}".to_sym do |arg1,arg2...argn| method(type,type1,type2...typen) end endend
0 0
- rails动态定义实例方法和类方法
- 关于类方法和实例方法的定义区分
- Ruby中的各种方法定义和调用(函数式方法|实例方法|类方法)
- asp类的定义方法和使用方法实例
- [Python] 类方法、实例方法和静态方法的定义方式与区别
- 实例方法和类方法
- 实例方法和类方法
- 实例方法和类方法
- 实例方法和类方法
- 类方法和实例方法
- 实例方法和类方法
- 实例方法和类方法
- 实例方法和类方法
- 类方法和实例方法
- 实例方法和类方法
- 类方法和实例方法
- 类方法和实例方法
- 类方法和实例方法
- PC端和移动端相应Enter
- 对恶意APP"淘宝宝贝分享图"的逆向分析
- 51. N-Queens
- Java中的sleep() | wait() | notify() | notifyAll()
- java基础理论
- rails动态定义实例方法和类方法
- 常见的web安全问题及防御
- SD卡相关操作
- 81. Search in Rotated Sorted Array II
- 网教 7.蜜汁序列
- 第十三章 字符串 正则表达式
- 点击键盘移动物体
- js&&省市级联列表&&分别用数组和JSON实现
- 单例