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

前端之家收集整理的这篇文章主要介绍了红宝石 – 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.您甚至可以在运行时包括模块.我可以通过混合来加载和保存免费方法.这些方法就像您为自己编写的课程一样.代码/行为/功能重用无继承!

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

猜你在找的Ruby相关文章