Ruby Class vs Module

Tags: |

Ruby modules allow you to create groups of methods that you can then include or mix into any number of classes. Modules only hold behaviour, unlike classes, which hold both behaviour and state.

Since a module cannot be instantiated, there is no way for its methods to be called directly. Instead, it should be included in another class, which makes its methods available for use in instances of that class.

Here are the quick pointers of exact difference between a class and module.

Class Module
instantiation can be instantiated can not be instantiated
usage object creation mixin facility, provide a name space.
super class module object
consists of methods, constants and variables methods, constants and classes
methods class methods, instance methods module methods, instance methods
inheritance inherits behaviour and can be base for inheritance No inheritance
inclusion cannot be included can be included in classes and modules by using the include command (includes all instance methods as instance methods in class/module)
extension cannot be extend with extends module can extend instance by using extend command (extends given instance with singleton methods from module)


Thanks for reading!