java中,对类增强的3种方式
-
继承
-
- 重写父类方法,并且在前后写增强的语句
装饰者设计模式
-
- 原理
- 与被增强的对象继承相同父类
- 包含一个父类类型的对象,有一个构造方法参数位父类类型,并将参数赋给内部的父类对象。
- 重写方法中在调用北增强的对象的相同方法,并在前后写增强的语句。
- 相较于继承:
- 被增强的对象可以修改。调用构造函数传递不同的类型,这样就可以 对不同的子类进行相同的增强。
- 增强的内容不能修改
- 所以就是可以对不同的子类进行相同的增强。
动态代理
- 原理
-
- 原理:
- 通过反射获得类的class对象,然后就获得该类的属性,方法。然后在者基础上添加增强的语句
- 原理:
-
- 相较于继承和装饰者模式的特点:
- 可以在程序运行的时候让被增强的对象修改,增强的内容进行修改
- 相较于继承和装饰者模式的特点: