关于AOP和MOP,reflection的问题?

有些aop的文章里又出现了反射(reflection)的概念,AOP与反射有什么不一样的吗?好像反射的概念要早于AOP吧?谁能来解释一下反射?
究竟AOP和MOP,reflection的关系是怎样的?

好像反射和构件框架结合得挺紧密,那AOP和构件框架的结合呢?

实现AOP思想无非一是象ApectJ那样写它能认识的脚步,然后用它来辅助生成你要达到AOP程序代码,一种当然即使反射啦。很正常的。

反射主张开放,构件提倡封闭,那么aspectJ怎么用在基于构件的软件开发中呢?

我的理解是:在AOP中,“反射”的操作单元是“构件”。

AOP挥舞着构件离子向外反射,从而开放地拥抱用户变化的需求。

根据这个“道”,我们可以编写出各种应对不同方面的剑谱(框架),来解决不同的业务难题。当然,悟性高,境界高的人,写出来的东西当然就高了。至于真正能否发挥出它的作用,还靠大家的内功高低了。若不会灵活使用,按“道”使用,则效果也不见的有多好。
我不是在这里故意弄“玄“,但是这东西非要用语言来表达的话,我觉的只好那么说了。即便是用代码表达,还是有那么多的人不能理解。用代码表达的网上也有很多了,大家可以搜索一下。可以去www.bea.com.cn那里寻找一下灵感,有几个获奖的代码,有些地方,和思想已经达到了比较高的层次。

在和基于构件的软件开发结合的道路上,我也觉得面向侧面编程技术要么就在一个构件的内部,不要超出这个范围,这样才能使构件更好的封闭,要么就在一个构件的外部,把构件作为一个操作单元。但是反射的操作单元是构件的话(构件外部),这样就不能用AOP来“象ApectJ那样写它能认识的脚步”,而且AOP也需要暴露切入点处的执行环境,操作单元是构件了,怎么暴露呢?有点疑惑,不知道是我理解错了,还是另有缘由?

怎么暴露呢,我觉的这靠个人的经验,和灵活架构了。

tmd,哪有这么麻烦。aop就是面滴,也就是横滴,oo就是竖滴。reflection只是一种实现方式而已。一个程序你能横七竖八地实现就是好滴,即使tmd的只是一个身份验证的功能,反正是引入的概念越多越好。
我前阵子写了一个比较简单的邮件客户端,好端端的就是非要基于spring,还非要aop加进去,这样子大家看了就会觉的牛b滴。要不然人家看你一个邮件客户端也就觉的没什么。
至于mop,如果我没猜错的话,是model op的意思吧?那么就是面向域模型开发的模式了,锯我想就是以数据为中心的设计方式了。

JdonFramework开源项目出来了,里面有一些AOP,还有基于Meta元数据编程,大量使用了java的reflection,欢迎查看和参与进一步开发。

MOP:metadata object protocol

倒是我落后了。我看了bang的回副,还以为叫metadata oriented programming。

我其实是由xdoclet想到的,xdoclet提出所谓的aop(attribute op)的概念。这个attribute 跟metadata有点相似。在spring里不也有基于metadata的aop的实现方式吗。只不过xdoclet和spring的出来的时候,jdk5.0还没有正式发布,没有jvm的支持,所以他们只能做成静态的,就是先生成相应的配置文件或则底层类,才能运行。不过好象听说spring以后也要利用jdk5.0的“动态metadata”(不知道这样叫是不是专业,反正只是品记忆)功能了。而ejb3.0利用元数据的功能简直就是xdoclet+jdk5.0的动态metadata的结合了。
凭记忆说说的。