class Dsl
def parse
puts "parse is here."
Executor.new # <<<--- 是不是走到这里的时候 当前对象的所属类就发生改变?
end
end
class Executor
def execute
"execute is here."
end
end
调用的时候 发现直接声明这个 Class 的实例 该实例的所属类还是 Dsl 当将 Dsl 的实例方法 parse 赋值给 另一个 object 的时候 他的所属类就变了
irb(main):017:0> obj_dsl = Dsl.new
=> #<Dsl:0x8453154>
irb(main):018:0> obj_dsl.class
=> Dsl
irb(main):019:0> obj_exe = Dsl.new.parse
parse is here.
=> #<Executor:0x82fc06c>
irb(main):020:0> obj_exe.class
=> Executor
这么做也可以
class Dsl
def parse
puts "parse is here."
class << self
Executor.new
end
end
end
可是这个应该不是单例方法吧 因为对象的单例方法应该不会修改对象的所属类 那这个算什么?