【Ruby】モジュールとは?
モジュールとは?
特定の機能を定義した部品(機能)のこと
以下のように定義する
module モジュール名 end
モジュールの特徴は?
・インスタンスを生成できないこと。
・ ほかのモジュールやクラスを継承できない。
クラスでも同じようなことができるのに、モジュールはどのようなときに使うのか?
・「ホンダ車は車である」のような関係(is-a関係)が成り立たないけど、共通の機能を追加したいとき 。
無理にクラスの継承を使うと、オブジェクト指向による設計が崩れて、コードが分かりにくいものになるから。
例えば、ログ出力するなどの色々な場面で使いたい機能などで使う。
・一つの機能として完結しているとき。
継承やミックスインして機能を拡張することがないときに使う。上記で述べたとおり、モジュールはクラスと違い継承ができないから
モジュールとクラスの違いは?
・モジュールは1つのクラスに複数のモジュールをミックスインできるが、クラスは1つのクラスに複数を継承できない。
・クラスはインスタンス化できるが、モジュールはできない。