Ruby Modules — include、extend 與 prepend

Ruby 中的 Module 同時存在 Namespace 跟 Mixin 兩種特性 Namespace 有點像是變數與 method 的 sandbox,包起來後可以避免命名上的衝突,這點與大部分程式語言相同。 Mixin 則是提供了在繼承關係外,仍有共用方法的可能性,避免產生 ”如果人可以飛,則人必須是鳥” 的情況,實現的感覺更像是引用而不是疊加(繼承),而 Mod ...