Rubyモジュールについて



モジュールとは

クラスは実体(データ)と振る舞い(メソッド)を持ちますが、モジュールは振る舞いのみを持ったものといえます。

クラスとの差異としては、以下の点が挙げられます。

・モジュールはインスタンスを持つことができない

・モジュールを継承できない。


モジュールによる名前空間の明示化

メソッド名や変数名が衝突しないように明示化することができます。

メソッドの利用に際しては、「モジュール名.メソッド名」という形式で記述します。


モジュールの作成

モジュール名の先頭文字は大文字である必要があります。

module SampleModule
  Definition = "3.0"
  def function(var)
    # process
  end
  module_function :function
end

定数

モジュールに定義した定数はモジュール名を経由して参照できます。

print Sample::Definition

メソッド定義

メソッドをモジュール関数として外部公開するためには、「module_function」というシンボルを使用する必要があります。


Mix-in

モジュールをクラスに混ぜることができます。

クラス定義内で「include」を記述して、モジュールのメソッドや定数をクラスに取り込みます。

module SampleModule
  #処理
end

class SampleClass1
  include SampleModule
end

class SampleClass2
  include SampleModule
end


関連ページ



スポンサード リンク