发新话题
打印

开放的类与动态特性

开放的类与动态特性

 

class Dotnet
def vb
   puts "vb"
end
end

a=Dotnet.new
a.vb # vb定义了,vb出现的时候,根本就没有csharp


class Dotnet
def csharp
   puts "csharp"
end  
end

a.csharp #csharp定义了
a.vb #vb依然存在


class Dotnet
  remove_method :vb
end

a.vb #vb已经被微软抛弃了(或许用qbasic比喻更恰当一点)

 
上面的过程是:打开一个已经存在的类,添加一个方法,最后删除掉不再需要的方法.

这个例子是ruby这个动态语言能够适应或者描述变化的一个例子.
现实世界是开放而动态变化的.ruby对此能够很好的描述这样的现实.

rails就利用了"开放的类"这个特点:您定义的类是开放的类,因此rails能够往你的类里面添加新的方法(根据你的需要)

TOP

听过最搞笑的故事

要说吐字不清,首推周杰伦,他一首歌里哼哼:“小贱人,小贱人,小贱人,小贱人,小贱人,小贱人……”我一听那个爽,也跟着唱,被女友痛骂后才知道,那兄唱的是“周杰伦,周杰伦,周杰伦……”还有管自己叫小贱人的?  

传奇外传私服  新开传奇外传私服  
最新传奇外传私服  今日开传奇外传私服
http://www.91sbk.cn/
http://www.333chuanqi.cn/

TOP

发新话题