1.代理模式
条件:
1.自己不想干,但是还必须干,交给代理干
2.需要获取到被代理对象的原始资料
使用过程:
1.有一个接口
2.有一个接口的实现类(被代理对象)
3.有一个代理类
4.在使用的时候,将实现类传入到代理对象里面
原理:
1.拿到被代理对象的引用,然后获取它的接口
2.JDK代理重新生成一个类,同时实现我们给的代理对象所实现的接口
3.把被代理对象的引用也拿到了
4.重新动态生成一个class字节码
5.然后编译
通俗来讲:代理类,首先获取接口相关的方法,然后代理类自己创建一个字节码文件(这个字节码最后会被编译的),理解为一个类也可以,实现了接口类,实现方法就是传进来的被代理对象的方法,从而使用哪个方法直就在里面拿到就可以使用,也就是说使用方法的时候,使用的不是被代理对象类的方法,而是字节码文件类的被代理的对象方法的副本。
2.责任连模式
3.门面模式
4.访问者模式:三个按钮共同在一起,但是中间处理的逻辑是互斥的。
5.spring相关的设计模式
6.设计模式总结