美文网首页
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