从Rails的活动记录说说元数据编程
来源:互联网 发布:js 文本域赋值 编辑:程序博客网 时间:2024/05/15 13:34
文章原题:跨越边界: 研究活动记录
作者是:Bruce Tate, 总裁, J2Life, LLC
原贴地址:http://www-128.ibm.com/developerworks/cn/java/j-cb03076/index.html?ca=dwcn-newsletter-java
这篇文章分析的是Rails所用到的活动记录,ActiveRecord的技术。活动记录要做的大概跟O/R mapping差不多。不过O/R mapping是基于映射的,就是把类和数据库对应起来,而活动记录是基于包装,wrappping的,就是直接生成一些包装数据库表的类。ActiveRecord用到了Ruby当中的反射和元数据编程技术,简单的来说,就是当你声明一个类继承于ActiveRecord的Base类时,那么在运行时,这个继承事件就会发送到Base类当中,Base类就能够做一些数据库反射之类的操作,获得这个子类所要包装的表,然后再动态的修改子类的实现,为他添加对应的属性和方法。也就是在O/R mapping当中,我们所要定义的属性和方法都能够通过这种元数据编程方式实现。这样做的好处就是,ActiveRecord的子类非常简单,如果你不需要特殊的操作,那么一句声明语句,声明你是扩展了Base类就可以完全搞定。
这种技术还是很有意思的,不过归根结底,这个技术也是用到了Ruby的反射和元数据编程,可惜元数据的能力就是Java所缺乏的,Java不提供这种动态的修改类代码的能力实在是丧失了不少有趣的应用。不过,还是有一些曲线救国的方式来大致达到这个效果,就是直接去hack虚拟机,在类装载的时候直接修改classfile的bytecode,这个方法估计以后会被用到的越来越多。
- 从Rails的活动记录说说元数据编程
- 说说活动网站的推广
- Ruby on Rails:活动记录纵览
- 从今天开始,记录测试活动的点点滴滴
- 说说“从编程到工程”专栏的由来
- 说说“从编程到工程”专栏的由来
- ruby元编程记录
- 说说 Rails 的套娃缓存机制
- 说说 Rails 的套娃缓存机制
- 从元数据
- 元数据与从元数据
- 利用C#的动态类型来实现与rails类似的元编程(1)
- 利用C#的动态类型来实现与rails类似的元编程(2)
- 从在订阅号上卖掉1000元的梳子,说说场景化媒体电商的未来
- 关于python元组数据截取问题的记录
- 从 SET FMTONLY 到表的元数据
- 说说记录
- 简单说说Symbian 活动对象(CActive)的工作机制
- Java当中新增的Instrument API
- 人类历史上最著名的十大超级愚蠢事件
- 关于session的详细解释
- C语言高效编程的几招
- 23条硬件维护基本技巧必看
- 从Rails的活动记录说说元数据编程
- 关于VS2005里面的FormClosing事件内添加对话框后重复执行的问题
- 计算机科学与技术学习心得
- web动态打印表格
- 广州、深圳、北京、西安生存手册(出外打工的人一定要牢记)
- C# 编码规范和编程好习惯__C#四种排序算法
- 做了点美工的工作
- HTA基础
- C++资源之不完全导引 [上]