包中的是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
|
请发表评论