ブラックボックスを撲滅したい

2017年1月よりフリーランスに転向したシステムエンジニアのブログ。プログラミングスクールではRubyの勉強をしていたが、現在はJavaによる開発がメイン。当ブログは筆者の学習メモを投稿していく予定。

【Ruby】モジュールとは?

モジュールとは?

特定の機能を定義した部品(機能)のこと

以下のように定義する

module モジュール名

end

モジュールの特徴は?

インスタンスを生成できないこと。
・ ほかのモジュールやクラスを継承できない。

クラスでも同じようなことができるのに、モジュールはどのようなときに使うのか?

・「ホンダ車は車である」のような関係(is-a関係)が成り立たないけど、共通の機能を追加したいとき 。
無理にクラスの継承を使うと、オブジェクト指向による設計が崩れて、コードが分かりにくいものになるから。
例えば、ログ出力するなどの色々な場面で使いたい機能などで使う。

・一つの機能として完結しているとき。
継承やミックスインして機能を拡張することがないときに使う。上記で述べたとおり、モジュールはクラスと違い継承ができないから

モジュールとクラスの違いは?

・モジュールは1つのクラスに複数のモジュールをミックスインできるが、クラスは1つのクラスに複数を継承できない。
・クラスはインスタンス化できるが、モジュールはできない。