前言
在编程过程中总结归纳出来的一种编程经验,从而形成的设计思想称为设计模式。
设计模式有23种。它适用于所有的编程语言。
常用的有创新型的设计模式:简单工厂、抽象工厂和单例模式;行为型的设计模式:模板设计模式、观察者模式和命令模式;结构性的设计模式:适配器设计模式、代理模式(方法增强,静态和动态两种,典型的有在spring的AOP编程中使用)和装饰器设计模式。
AOP 常见实现技术有以下两种:
- 静态代理:静态代理是一种在编译时就已经确定代理关系的代理方式。在静态代理中,代理类和被代理类都要实现同一个接口或继承同一个父类,代理类中包含了被代理类的实例,并在调用被代理类的方法前后执行相应的操作。静态代理的优点是实现简单,易于理解和掌握,但是它的缺点是需要为每个被代理类编写一个代理类,当被代理类的数量增多时,代码量会变得很大。
- 动态代理:动态代理是一种在运行时动态生成代理类的代理方式。在动态代理中,代理类不需要实现同一个接口或继承同一个父类,而是通过 Java 反射机制动态生成代理类,并在调用被代理类的方法前后执行相应的操作。动态代理的优点是可以为多个被代理类生成同一个代理类,