看板 Ruby 關於我們 聯絡資訊
※ 引述《godfat (godfat 真常)》之銘言: 之前有看到一個叫mixology的gem... 可以支援mixin與unmix... 用途應該跟你要的uninclude差不多? gem install mixology == 範例: require 'mixology' class A end module X def hi puts "hi" end end a = A.new a.mixin X a.hi #=> 'hi' a.unmix X a.hi #=> undefine method == 然後他還給了個拿來玩state pattern的範例... class Door def initialize(open = false) @open = open if open mixin Open else mixin Closed end end def closed? kind_of? Closed end def opened? kind_of? Open end end module Closed def open unmix Closed mixin Open end end module Open def close unmix Open mixin Closed end end -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.78.21