ruby mix-in

uby是非常灵活的,她允许你做到任何你能想到的神奇的事情。
今 天在读模块和混含(mix-in)时,被深深的打动了一把。在Ruby语言中,我们可以把一些常用的业务逻辑(应用)封装在一个模块当中,在未来的某个类 中,如果我们希望此类的实例去拥有模块中所包含的功能,只需要在将模块混含入类中就可以了,此类的对象实例就理所当然的拥有了“外来”的力量!之前我一直 在写Java代码,因此对于混含我似乎感觉她是一种神奇的力量,完全打破了传统的圈圈框框,而且通过模块,可以进一步的细化封装,使代码得到更大限度的重 用,何其的伟大?!
为了证明这一点,我们可以让混含之后类的实例对象调用respond_to?方法来检测是否拥有了模块中定义的方法,我们可以编写如下类和模块代码:
module Message
  def show_message
    puts "Hello Anthrax!"
  end
end

require "message"
class ShowMessage
  include Message
end

show = ShowMessage.new
if show.respond_to?("show_message")
  puts "OK!!!"
end
show.show_message

执行程序,显示:
OK!!!
Hello Anthrax!

说明我们之前的操作确实如同我们预想的那样,模块的功能被混入了类,可以被类的对象实例随意使用,而不需要象Java那样依赖先天继承或实现多个接口。这仅仅是Ruby语言强大灵活特色之冰山一角,有兴趣的朋友也可以和我一起加入的Ruby的学习中来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值