可能的重复:
红宝石继承与混合
以下是 Ruby 中的常见模式:
module Persistable
def initialize
# Initialize a persistable document.
end
end
class Foo
include Persistable
end
与简单的子类化相比,这里有什么优势?
class PersistableDocument
def initialize
# Initialize a persistable document.
end
end
class Foo < PersistableDocument
end
换句话说,如果完成的只是一行额外的代码,为什么还要混合定义对象应该如何实例化的行为呢?