Ruby/Ruby-日本語
Ruby モジュール
아랑팡팡
2023. 12. 19. 16:02
728x90
Ruby モジュール
- クラスのようにメソッドや定数(Constant)をまとめられるもの
- Rubyでモジュール(Module)は特定の機能をグループ化する方法として使用されます。
- モジュールはクラスと似ていますが、インスタンスを生成することはできず、継承することもできません。 代わりに、モジュールは2つの主要用途で使用されます
クラスの違い
- インスタンスを作ることができない
- 継承ができない
モジュールの定義
module モジュール名
# モジュールの定義(メソッドや、定数など)
end
1) ネームスペース(Namespace):
- モジュールは、互いに関連するメソッド、クラス、異なるモジュールなどを1か所にグループ化して名前の衝突を防止するために使用されます。
たとえば、2 つの異なるライブラリがレポートというクラスを使用する場合、それぞれのレポート クラスを異なるモジュール内に入れて名前の衝突を防止できます。
2) ミックスイン(Mixin):
モジュールは、複数のクラスにわたって再利用可能なメソッドを提供するために使用されます。
Rubyでは多重継承をサポートしていませんが、モジュールを使用してミックスイン機能を通じて似たような効果を出すことができます。 クラスにモジュールを含めると、モジュールのメソッドがクラスのインスタンスメソッドとして使用できます。
また、モジュールを拡張(extend)してモジュールのメソッドをクラスのクラスメソッドとして使用することもできます。
例題
- 自動車の運転者に関するモジュールの作成
- Runと出力するメソッド
- Stopと出力するメソッド
module Driver
def self.run
puts "Run"
end
def self.stop
puts "Stop"
end
end
class BusDriver
include Driver
def run
super
puts "Bus Diver is running"
end
end
Driver.run
Driver.stop
bus_driver = BusDriver.new()
bus_driver.run
728x90
반응형
LIST