本文中主要包含aspectj introduction demo。
例如下面的一个类Product:
}
如果想要给这个类增加一个属性或者是方法的话,最简单方法就是修改代码,但是这么做不得不面临代码的重新测试,那么如何解决?答案之一就是使用aspectj的introduction性质。具体做法如下:
IValidatable.java :
ProductValidatableAspect.java
public boolean Product.isOnSale() {
return this.getPrice() > 0 ? true : false;
}
}
客户端可以这么使用这个类了,就好像这个类中存在了一个方法isOnSale方法:
public static void main(String[] args) {
Product product = new Product();
product.setPrice(10);
System.out.println(((IValidatable)product).isOnSale());
}
}