記事の内容
この記事では、Module(モジュール)の使い方を紹介します。
Moduleとは何か?
Moduleには、主に2つの機能があります。
これらについて、順番に見ていきたいと思います。
- 名前空間を提供する
- クラスに組み込んで多重継承を実現する
Moduleの使い方
名前空間を提供する
Moduleを使うことで、イメージ的には、変数やクラスを整理することができます。
同じ定数名でも、module名が異なれば別の値として使うことができます。
それは、クラスでも同様です。
同名のクラス名、メソッド名でも、moduleが異なれば別のクラスとして扱われます。
多重継承
Rubyの継承は、一つの親クラスしか持てませんでした。
しかし、Moduleを利用した多重継承のような機能を使えば、複数のクラスにある機能を使うことができます。
その機能をMixin(ミックスイン)と呼びます。
下記の例では、「空に関する能力」と「海に関する能力」の2つを子クラスで実装しています。
子クラスが、インスタンスメソッドとしてmoduleを利用するためには、「include」というキーワードを使います。
上記の例では、インスタンスメソッドから使いましたが、クラスメソッドとしても実装することができます。
子クラスが、クラスメソッドとしてmoduleを利用するためには、「extend」というキーワードを使います。
まとめ
この記事では、Moduleが提供する機能について説明しました。
Good luck for your engineer life!