红宝石 – Mixins和or traits的一些很好的例子是什么?

我正在阅读Ruby,并了解了它的混合模式,但不能想到很多有用的mixin功能(因为我不太习惯这样想).所以我想知道什么是有用的Mixin功能的好例子?

谢谢

编辑:有点背景.我来自C和其他对象语言,但我的怀疑是Ruby说它不是继承mixins,但我不断将mixins视为多重继承,所以我害怕我正在尝试将它们分类到我的舒适区域,而不是真正的grok什么mixin是.

解决方法

通常的例子,我认为是持久性
module Persistence
    def load sFileName
            puts "load code to read #{sFileName} contents into my_data"
    end
        def save sFileName
        puts "Uber code to persist #{@my_data} to #{sFileName}"
    end

end

class BrandNewClass
    include Persistence
    attr :my_data

        def data=(someData)
        @my_data = someData
    end
end

b = BrandNewClass.new
b.data = "My pwd"
b.save "MyFile.secret"
b.load "MyFile.secret"

想象一下,这个模块是由Ruby忍者编写的,它将你的类的状态保持在一个文件中.
现在假设我写了一个全新的类,我可以重复使用持久性的功能混合在一起说包括ModuleILike.您甚至可以在运行时包括模块.我可以通过混合来加载和保存免费方法.这些方法就像您为自己编写的课程一样.代码/行为/功能重用无继承!

所以你正在做的是包括方法表的方法为你的类(不是字面上正确但关闭).

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...