DemeterJ, DJ, AP

根据BirdGu的指导。我搜索了Demeter。发现和以前看到的Adaptive Programming有密切联系。

先解释一下名词:
AP -- Adaptive Programming
Demeter J -- Demeter Java
DJ -- Dynamic Adaptive Programming in Java

这些和AOP同样有紧密的联系。

Demeter是一个原则。law。
大意就是只能调用member, parameter的第一级方法, 不能a.getA().getB()这样的连锁调用。
当然,它的正式定义没有我写的这么直白。

Demeter Java呢,就是帮助程序员避免自己写很多Wrapper,又能够遵守Demeter Law的一种自动工具。

Adaptive Programming就是Incremental Concern Programming。算是AOP, AOSD的一个特例。

Dynamic Adaptive Programming in Java 就是建立在Demeter Java基础上的 Adpative Programming。

和AOP (AspectJ etc)的关系是互补的。
区别在于,DJ 定义了一条 Object Graph Traversal 路径,然后用一个 Visitor 去截获路径上的 Object.

AOP : 定义并截获 Pointcuts 没有显式的顺序概念
AP : 定义并截获 Object Graph Traversal Path, 有显式的顺序概念


AspectJ

aspect Logging{
LogFile l;
pointcut traced():
call(void *.update()) ||
call(void *.repaint());
before():traced(){
l.log(“Entering:”+
thisJoinPoint);}
}



Java+DJ

class Source{
HashSet collect(ClassGraph cg)
{return (HashSet)
cg.traverse(this,
“from Source to Target”,
new Visitor(){ … ;
public void before
(Target h) { … }
public void start() {…}});
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值