Rails Class 和 Module

ucooling · 2014年05月29日 · 最后由 rasefon 回复于 2014年05月30日 · 2390 次阅读

这几天在研究 Ruby 元编程这本书,看到 Class 和 Module 的区别,仔细想了一下,觉得跟 java 里边的多态有点异曲同工的意思。 Module 相当于 java 里边的父类,Class 只是在 Module 的基础上有了不一样的表现。大家怎么看,也可以说说你们在什么情况下会使用 Class,什么情况下使用 Moudle,我就是抛砖引玉!!!

Java 的多态对应的是 duck typing Module 应该像 Java8 的胖接口(是这么叫?)

#1 楼 @saiga java 中的接口只是定义了一个方法的申明,不能够定义方法体。所以还是觉得更像超级父类(我也忘了是不是这么叫了)

别和 java 比嘛,不然后面看不下去啊

#2 楼 @ucooling java8 的接口...不过我没做过 java 不太清楚新特性

总是跟 Java 比写出来的代码会成为 Ruva。

#5 楼 @billy #3 楼 @sunday35034 没有要比的意思,只是在看的时候突然联想到了,我也只是在大学期间学过点 java,现在基本上全忘了。之所以选择学习 Ruby 就是喜欢它的自由的风格。

忘了就忘了,为了学 Ruby 不用把 Java 捡起来。一个动态一个编译差别很大的。

#6 楼 @ucooling 忘了就对了,现在还能找到相似的地方可以比较,看到后面就找不到可比性了。不过 java 也有个动态生成类的叫 asm 好像。毕竟底层实现还是 C

其实 module 更像 c 里面#define,直接把函数在 include 的地方扩展。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号