应用程序中有些部分可以作为一个PIM来编写,其中大部分信息搜集工作都可以由元编程系统实现。
在一种动态类型语言中,使用元编程特性来实现高级设计经常是必要的。
但Searchable插件也可以在您个人的域类上做一些元编程。
搭建,像许多元编程技术一样,就是个运行时代码生成器。
最好的系统可以让您在元编程系统本身内部就可以进行多级抽象。
在“使用闭包、ExpandoMetaClass和类别进行元编程”一文中,您了解了delegate的概念。
用来生成代码的程序有时被称为元程序(metaprogram);编写这种程序就称为元编程(metaprogramming)。
Streamlined并不处理这个麻烦,而是支持通过元编程和模板的有效定制。
使用元编程最普通的情况就是创建具有动态生成的属性和方法的类。
有两个看起来想正确地混合代码生成和元数据的Java框架,它们是RIFE和JMatter(请参阅参考资料)。
由于这个原因,元编程系统应该可以进行定制,从而为各种系统产生输出。
但是,这次失败并不是因为域类上缺少元编程,而是因为缺少依赖性注入。
传统元编程和企业元编程之间的首要区别在于二者试图解决的问题不同。
其作用是提供上下文参考;其大多数内容都是比较高级的Ruby元编程,因此本文并不会详细讨论它。
它使用元编程来生成视图模型,使你能够绑定至你在控制器中定义的对象。
正如您在本系列的第三篇文章中看到的,Rails的元编程策略使每行代码都执行更多的任务。
但是如果希望对元编程进行更多的显示该怎么做(对于编写单元测试尤其重要)?
泛型编程调用一个设施内的元编程语言,这些语言支持。
Giles首先以希腊字母pi、lambda和单词meta为元编程开头(5:25)。
JakartaCommonsLang:这些用于java.langAPI的helper实用工具包括可用于Groovy元编程的类。
本系列教程的上一篇文章中介绍的元编程系统实际上是平台特有的模型。
注意,只需将String.metaClass设置为null,就可以取消元编程。
使用Ruby反射和元编程的组合,表的列可以变成对象的属性。
其实,我平常大多数时候都把元编程应用在写测试上面。
通常,大部分代码都可以使用元编程工具来实现这个任务。
如果你的元编程需要eval,那它也必须遵循相同的要求。
虽然企业元编程同样涉及这些问题,但是它们还增加了其他一些考虑。
1·The Ruby language also has attributes (although they don't have a special name like "attributes" - they are one of many metaprogramming techniques Ruby offers).
Ruby语言也有属性(不过它们不像“属性”一样有特定名称—它们是Ruby提供的其中一种元程序设计方法)。
2·Metaprogramming offers a great way to differentiate pattern code from implementation code because you express your pattern by using code that is about code.
元程序设计提供一种不错的方式将模式代码与实现代码区分开来,因为您使用关于代码的代码来表达您的模式。
3·You can define attributes to create declarative metaprogramming tags.
您可以通过定义属性来创建声明性元程序设计标记。