美文网首页
Java知识框架 - 设计模式

Java知识框架 - 设计模式

作者: 码畜的快乐源泉 | 来源:发表于2020-03-09 18:11 被阅读0次
  • SOLID

    • 单一职责原则 - 一个类只负责一个职责 - 方法级别做单一职责也是OK的
    • 开放封闭原则 - 类对提供方扩展开放,对使用方修改关闭
    • 里式替换原则 - 继承需要注意什么问题和遵守什么原则
    • 接口隔离原则 - 客户端不应该依赖它不需要的接口
    • 依赖反转原则 - 传参是接口而不是具体实现类
  • 创建型

    • 单例模式

      • 懒汉,线程不安全


        image.png
      • 懒汉,线程安全


        image.png
      • 饿汉


        image.png
      • 饿汉,变种


        image.png
      • 静态内部类


        image.png
      • 枚举 - 享有特权的客户端可以借助AccessibleObject.setAccessible方法,通过反射机制调用私有构造器。如果需要抵御这种攻击,可以修改构造器,让它在被要求创建第二个实例的时候抛出异常。


        image.png
        • 枚举Enum是个抽象类,一旦一个类声明为枚举,实际上就是继承了Enum,所以会有(String.class,int.class)的构造器。既然是可以获取到父类Enum的构造器,反射是因为自身的类没有无参构造方法才导致的异常,并不能说单例枚举避免了反射攻击。
        • 反射在通过newInstance创建对象时,会检查该类是否ENUM修饰,如果是则抛出异常,反射失败。
      • 双重校验锁


        image.png
    • 工厂模式 - ThreadPoolExecutor


      image.png
    • 建造者模式


      image.png
  • 结构型

    • 适配器模式 - Netty - ChannelInboundHandlerAdapter&ChannelOutboundHandlerAdapter
    • 装饰模式
    • 外观模式 - Facade
  • 行为型

    • 职责链模式 - Netty - ChannelPipeline

    • 状态模式


      image.png
    • 观察者模式


      image.png

相关文章

网友评论

      本文标题:Java知识框架 - 设计模式

      本文链接:https://www.haomeiwen.com/subject/uytmdhtx.html