ruby裡面module和class的區別

2021-09-07 00:19:05 字數 1176 閱讀 7077

一句話概括,就是

class可以例項化

module不可以

別的都一樣

關於繼承的一點區別

class是使用《作為繼承的關鍵字,只支援單繼承

module是使用include來做例項繼承(例項化的時候動態功能插入),extend做類繼承(可以理解為static繼承)

module的應用場景

作為namespace,裡面放一般的const或者自己的class

作為工具模組,放通用方法,別的類裡面直接include或者extend以後使用,也可以看成動態擴充套件業務類

可以作為抽象類,module裡面提供預設實現,業務類include或者extend以後覆蓋

作為介面來用,乙個可用的介面庫,module-inte***ce

抽象類的例子

module myabstract

defwalk

puts

'abstract walk

'end

defrun puts

'abstract run

'end

endclass

person

include myabstract

defrun

puts

'person run

'end

enda =person.new

a.run

a.walk

介面的例子

require '

module/inte***ce

'module runnable

defwalk

enddef

run end

endclass

person

include runnable

extend module::inte***ce

inte***ce runnable do

defrun

puts

'run

'end

defwalk

puts

'walk

'end

endenda =person.new

a.run

a.walk

Ruby 塊(Block)與模組(Module)

定義 首先從中文的字面理解到就是一整塊,聯想到編碼我們便能想到這可能是一些 的一整塊構成吧。沒錯!a ruby block is a way of grouping statements ruby中的塊就是組織多個 句的一種方式。表示 ruby標準中,對於單行的 塊使用大括號 表示 對於多行的 塊則...

ruby的class與module的區別

1 模組不能例項化,類不能include 2 如果模組和類不在用乙個檔案中,如果要使用include,先使用require把檔案引入 3 include不是簡單的將模組的例項變數和方法拷貝到類中,而是建立乙個由類到所包含模組的引用 4 如果有多個include,將依次生成 類,最後乙個include...

學習筆記1 Ruby模組 module

我們使用模組的的主要目的是用來組織 模組化 有點類似命名空間,但卻有很大的不同 一 建立和使用模組 用module關鍵字來定義模組 module沒有例項,我們使用時把module混合到類中來使用,我們也可以這麼理解,把module裡的內容拷貝乙份放到類裡,成為類的一部分 我們可以把模組放到乙個單獨的...