一句話概括,就是
class可以例項化module不可以
別的都一樣
關於繼承的一點區別
class是使用《作為繼承的關鍵字,只支援單繼承module是使用include來做例項繼承(例項化的時候動態功能插入),extend做類繼承(可以理解為static繼承)
module的應用場景
作為namespace,裡面放一般的const或者自己的class作為工具模組,放通用方法,別的類裡面直接include或者extend以後使用,也可以看成動態擴充套件業務類
可以作為抽象類,module裡面提供預設實現,業務類include或者extend以後覆蓋
作為介面來用,乙個可用的介面庫,module-inte***ce
抽象類的例子
module myabstractdefwalk
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裡的內容拷貝乙份放到類裡,成為類的一部分 我們可以把模組放到乙個單獨的...