AOP(8.19暂停至spring20)

来源:互联网 发布:java 压力测试工具 编辑:程序博客网 时间:2024/04/30 19:27

Aspect Oriented Promgramming(AOP)—-面试问得多

1.直接写在原来的程序上,但不灵活
2.继承(慎用继承。因为父类方法子类必须继承,而且父类方法改了子类必须改,耦合性太强)
3.组合【设计类的时候把要组合的类的对象加入到该类中作为自己的成员变量】
(组合比继承更具灵活性和稳定性,所以在设计的时候优先使用组合)

xml中使用动态代理,将所有方法运行前加入一个LogMethod方法。

组合

  ①:当前对象只能通过所包含的那个对象去调用其方法,所以所包含的对象的内部细节对当前对象时不可见的。

  ②:当前对象与包含的对象是一个低耦合关系,如果修改包含对象的类中代码不需要修改当前对象类的代码。

  ③:当前对象可以在运行时动态的绑定所包含的对象。可以通过set方法给所包含对象赋值。

  组合的缺点:①:容易产生过多的对象。②:为了能组合多个对象,必须仔细对接口进行定义。

由此可见,组合比继承更具灵活性和稳定性,所以在设计的时候优先使用组合。只有当下列条件满足时才考虑使用继承:

子类是一种特殊的类型,而不只是父类的一个角色
子类的实例不需要变成另一个类的对象
子类扩展,而不是覆盖或者使父类的功能失效

0 0
原创粉丝点击