I was reading up on Ruby, and learned about its mixins pattern, but couldn’t think of many useful mixin functionality (because I’m not used to thinking that way most likely). So I was wondering what would be good examples of useful Mixin functionality?
Thanks
Edit: A bit of background. I’m Coming from C++, and other Object languages, but my doubt here is that Ruby says it’s not inheriting mixins, but I keep seeing mixins as Multiple inheritance, so I fear I’m trying to categorize them too soon into my comfort zone, and not really grok what a mixin is.
Well the usual example I think is Persistence
Imagine the module is written by a Ruby ninja, which persists the state of your class to a file.
Now suppose I write a brand new class, I can reuse the functionality of persistence by mixing it in by saying
include ModuleILike. You can even include modules at runtime. I get load and save methods for free by just mixing it in. These methods are just like the ones that you wrote yourself for your class. Code/Behavior/Functionality-reuse without inheritance!So what you’re doing is including methods to the method table for your class (not literally correct but close).