AR삽질러

Ruby モジュール 본문

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