Open1
モジュールについて
モジュール
クラスとの相違点
- モジュールからクラスを作成することはできない
- 他のモジュールやクラスを継承することはできない
なんの役に立つ?
使用タイミング
-
継承の関係にないけど、コードを使いまわしたい時
ミックスインすることで使いまわせる
クラスの外で呼び出せないようにするため、privateメソッドにすることもできる -
include先のメソッドを前提にモジュールを定義することもできる
-
extendすることでクラスメソッドにすることもできる
名前空間
- クラス名が重複してしまうことがある
- そのときは"モジュール名::クラス名"のように::でモジュール名とクラス名を区切る
- 名前空間として使うモジュールがすでにどこかで定義されている場合は、モジュール構文やクラス構文を入子にしなくても"モジュール名::クラス名"のような形でクラスを定義することができる