ruby元编程之杂记1

看了Programming Ruby会发现仿佛回到了初高中,一些无聊的英语语法,学了n年!就会讲一句“how are you,Im fine”或者老外问路“I new here too” !就像学一些绕人的武功心法, 但不知奇经八脉在身体哪里,相对现代人而言,白搭。唉!回头看pro ruby还是属于少林派武功,不过咱们还是喜欢武当派的功夫! 还好在学rails的时候认识了Dave才走了捷径,(为什么在学英语的时候没有认Dave一漂呢,不过至少现在认识了小帅)!星期一刚认识了Bill,他说聊到一个有趣绕人的话题,其实也很简单。

话回正题

混乱的模块

module Printable
  def print
  end
  def prepare_cover
  end
end
module Document
  def print_to_screen
    prepare_cover
    format_for_screen
    print
  end
  def format_for_screen
  end
  def print
  end
end
class Book
  include Document
  include Printable
end
b= Book.new
b.print_to_screen

问题:调用哪个print()方法。呵呵。

1.8.7 :036 > Book.ancestors 
 => [Book, Printable, Document, Object, Kernel] 

想起去年在写rest_api kjava接口的时候的解决方案 android的调用接口如:/android/session.json kjava 的调用接口如:/kjava/session.json 这样命名为了好维护接口,两个接口的格式都不是json.但是考虑到转输流量,数据问题,他们的格式完全不同。在c层逻辑很多相同,有部份逻辑不同。

如果kjava单独再写一部,那么就会知道泰山是怎么垒起来的,也知道为什么泰山那么雄伟,而开发商不去上面开发楼盘的原因了。 好,能用include的方法继承android的方法,让世界变的轻巧多啦。

Comments