ruby-core
包中的是ruby的核心类(算是M2+M3级)
外面的User是M1级。 虚线是instance_of关系
具有金穗带构架,Object.instance_of?(Class) = true, Class.ancestors.include?(Object) = true
不是很明白,中间杀出个程咬金:Module
总体原则是,核心类簇中继承链中的叶类作为实例化关系的祖先, 即Class
一些特征:
1)特定于某对象的方法(单例类实例的方法)
str = "sdfsdf"
def str.foo
puts "a per object method"
end
2)DSL特征,在Module类中增加方法,以便用户类在定义时调用。
class Module
@@doc = {}
def doc(str)
@@doc[self.name] = str
end
def Moduel.doc(aClass)
aClass = aClass.name if aClass.class <= Module
@@doc[aClass]
end
end
class User
doc "here is the doc for user"
end
3)条件定义
def foo
if $DEBUG
def foo
puts "debug version"
end
else
end
end
4)匿名类
class User
@class_val = 123
class <<self
def aClassMethod
puts @class_val
end
end
end