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