程序笔记   发布时间:2022-07-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了设计模式复习大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

代理模式

使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。

静态代理:

  • 定义一个接口及其实现类(被代理对象);
  • 创建一个代理类同样实现这个接口
  • 将目标对象注入进代理类,然后在代理类的对应方法调用目标类中的对应方法。

动态代理(JDK 动态代理、CGLIB 动态代理):

JDK 动态代理只能代理实现了接口的类,而 CGLIB 通过生成一个被代理类的子类

  • 定义一个接口及其实现类;
  • 自定义 InvocationHandler 并重写invoke方法,在 invoke 方法中我们会调用原生方法(被代理类的方法)并自定义一些处理逻辑;
  • 通过 Proxy.newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h) 方法创建代理对象;
  • 自定义 @H_372_22@methodInterceptor 并重写 intercept 方法,intercept 用于拦截增强被代理类的方法,和 JDK 动态代理中的 invoke 方法类似;
  • 通过 Enhancer 类的 create()创建代理

单例模式

工厂模式

适配器模式

装饰器模式

观察者模式

模板方法模式

大佬总结

以上是大佬教程为你收集整理的设计模式复习全部内容,希望文章能够帮你解决设计模式复习所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。