设计模式
单例模式
双重校验锁
public class Singleton { |
模板方法模式
抽象出步骤的执行顺序作为抽象方法,具体的实现方法交给子类实现
实现 AQS 抽象类的锁,需要重写 CLH 锁的 tryAcquire-tryRelease
、tryAcquireShared-tryReleaseShared
、isHeldExclusively
方法。
重写钩子方法,可以自定义 state
的含义:值为多少时代表加锁成功/失败 or 解锁成功/失败,也可以实现共享锁或独占锁。
观察者模式
具体查看 JUC_Lock 博客的 CompletableFuture
的底层实现
适配器模式
具体查看 SpringMVC 博客的 HandlerAdapter
的底层实现
开闭原则:新增代替修改