基本内容:模板方法模式AQS、主题观察者模式(事件源-事件监听器)、责任链模式(netty handle链)、策略模式(spi)、状态模式、装饰者模式(io流)、代理模式(dubbo invoke)、桥接模式(slf4切换底层实现的桥接包)、适配器模式、外观模式、单例模式、bulid建造器模式
1.模板方法模式:父类定义算法骨架,具体实现延迟到子类实现,子类可以自由的替换某个小步骤的实现。如AQS。
2.观察者模式:当主题的数据|状态发生变化时,方便通知对该变化感兴趣的观察者,使这些观察者做一些动作。如事件监听器。主题与观察者双向关联,主题可以通知观察者,观察者本身也可以取消对主题的订阅。如源-监听器。
3.责任链模式:每个handel负责自己的业务,然后要么终止传递要么继续向后传递。如netty handle链、web 过滤器链。
类图:
时序图:
4.策略模式:整体替换算法,用不同的算法去解决同一个问题,由外部访问对象自己选择策略。
如netty EventExecutorChooser。
类图:
5.装饰者模式:装饰者内部维护一个组件,对组件进行装饰,得到的是一个被装饰后的组件,即装饰者本身也是一个组件(看类图),因此可以被多次装饰。如java i/o包
类图:
6.代理模式
参:图解设计模式、head first设计模式