Open1

モジュールについて

philosophynotephilosophynote

モジュール

クラスとの相違点

  • モジュールからクラスを作成することはできない
  • 他のモジュールやクラスを継承することはできない

なんの役に立つ?

使用タイミング

  • 継承の関係にないけど、コードを使いまわしたい時
    ミックスインすることで使いまわせる
    クラスの外で呼び出せないようにするため、privateメソッドにすることもできる

  • include先のメソッドを前提にモジュールを定義することもできる

  • extendすることでクラスメソッドにすることもできる

名前空間

  • クラス名が重複してしまうことがある
  • そのときは"モジュール名::クラス名"のように::でモジュール名とクラス名を区切る
  • 名前空間として使うモジュールがすでにどこかで定義されている場合は、モジュール構文やクラス構文を入子にしなくても"モジュール名::クラス名"のような形でクラスを定義することができる