微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

原文地址:https://www.jb51.cc/ruby/273787.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐