元数据,元编程开发导读

185 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 10天,点击查看活动详情

背景

首先还是来说下为什么出现元编程? 一个技术的出现肯定是不满足现状,那么元编程的出现是为了解决什么问题呢?举一个栗子,比如我们需要获取某个类的属性进行赋值取值或者获取函数信息进行调用时,我们当然可以编写代码以让外界访问这些数据,但是这样做容易出错而且特别麻烦,这个时候我们可以想到利用反射也可以达到同样的效果。对吧,获取类变量,函数信息这看起来就是反射可以做到的事情,所以其实反射也属于元编程范畴。

什么是元数据

顾名思义,元数据和元注解一个道理,元注解是标记注解的注解,元数据自然就是描述数据的数据,这个听起来有点绕口,来解释一些这两个“数据”到底分别指代什么?

描述“数据”的“数据”

我们知道我们的需求也就是程序是通过各种数据构建起来的,这些数据就是指类,函数,变量....等是对现实世界和需求的描述,这就是第一个数据的意思

通过类,变量,函数这些数据去描述需求程序

那么第二个数据也就知道了,是用来描述类,函数,变量的数据,这就是第二个数据的意思,也就是元数据。

通过元数据描述类,变量,函数信息

什么是元编程

直接说定义:操作元数据的编程就是指元编程。 比如我们通过反射获取类,属性,方法的一些信息,进而操作他们这也叫元编程。所以上面说到反射也算元编程的范畴。 但是这么说又太片面了,反射是通过程序获取数据,而元编程还包括通过数据获取程序。即“程序即是数据,数据即是程序”。 可以这么说元编程是更高阶的抽象,高阶函数用函数作为输入输出。而元编程用程序作为输入输出。

程序即是数据

这个很好理解,通过指定的程序来获取构成这个程序的信息,比如一个Book类,我们可以动态的获取这个类中的属性和行为,其实就是反射。