Rubyのモジュール(Module)とは?コードを整理・共有する仕組みを学ぼう!
Rubyには、複数のクラス間で共通の機能を使いまわせるモジュール(Module)という便利な仕組みがあります。
モジュールを使うことで、コードの再利用や整理がしやすくなります。
モジュールとは?
モジュール(Module)とは、メソッドや定数をまとめた名前空間のようなものです。
クラスとは違い、インスタンスを生成することはできませんが、クラスに組み込むことで機能を追加できます。
モジュールの定義と使用例
module Greet
def hello
puts "こんにちは!"
end
end
このように、module モジュール名
で定義します。
次に、これをクラスに組み込むことでメソッドを使えるようになります。
ミックスイン(Mixin)の使い方
class Person
include Greet
end
p = Person.new
p.hello # → こんにちは!
include
を使ってクラスにモジュールを組み込むことをミックスイン(Mixin)と呼びます。
これにより、クラスにモジュールのメソッドを追加できます。
モジュールの別の使い方:名前空間
モジュールは名前の衝突を避けるための名前空間としても使えます。
module Animal
class Dog
def bark
puts "ワンワン!"
end
end
end
a = Animal::Dog.new
a.bark # → ワンワン!
Animal::Dog
のように、モジュールを使うことで名前を整理できます。
extendでクラスメソッドとして使う
module Greet
def hello
puts "こんにちは!"
end
end
class Robot
extend Greet
end
Robot.hello # → こんにちは!
extend
を使うと、クラスメソッドとしてモジュールを使うことができます。
モジュールの特徴まとめ
- インスタンス化できない(クラスと違う)
- 複数のクラスに共通の機能を提供できる
include
でインスタンスメソッドとして追加
extend
でクラスメソッドとして追加
- 名前空間としても使える
まとめ
Rubyのモジュール(Module)は、機能を共通化・整理するための重要な仕組みです。
複数のクラスで同じ機能を使いたいときや、コードの重複を減らしたいときにとても役立ちます。
まずは include
と extend
の違いを理解し、簡単なモジュールを自分で作って試してみましょう!