如果想实现一个公共功能
- 将公共功能写到父类中,子类继承父类.
- 使用面向切面编程aop,设置切点切入所要添加功能的类.
aop底层使用了动态代理机制(默认使用JDK动态代理,但对于没有实现接口的类则切换到Cglib动态代理)
优点:
1.功能切换方便,比如想去掉某些类的该公共功能,直接修改连接点即可(继承的话还需挨个修改子类).
2.通过织入多个切面可以实现类似多继承的功能(java不支持多继承).
//继承方式
class Commen{
public void fun(){
}
}
//如想去掉该公共功能需修改此子类
class SonOne extends