策略模式
官方描述:(定义一系列算法,把他们封装起来,并且使它们可以相互替换)
白话文描述:有共同的抽象行为,具体不同的行为称作为不同的策略,最终可以使用Context上下文获取相对应的策略
应用场景:解决多重if判断问题、聚合支付平台、第三方联合登陆、调用多个不同短信接口等。
责任链模式
官方描述:(将请求的发送者和接收者解耦,使的多个对象都有处理这个请求的机会)
白话文描述:每一个业务模块之间相互依赖比较有关联、每个关联模块称作为handler(处理器)使用上一个handler引用到下一个hanlder实现一个链表
应用场景:权限控制、网关权限控制、审批、风控系统等。
模板模式
官方描述:定义一个算法结构,而将一些步骤延迟到子类实现
白话文描述:提前定义好整体骨架,不同的行为让字类实现,相同的行为直接定义在抽象类中复用
应用场景:支付的异步回调重构、Servlet实现
装饰模式
官方描述:对象间的一对多的依赖关系
白话文描述:在不改变原有对象的基础上附加功能,相比生成子类更灵活
应用场景: IO流
代理模式
官方描述:为其他对象提供一个代理以便控制这个对象的访问
白话文描述:在方法之前和之后做一些处理,实现 AOP通知
应用场景:AOP、事务、日志、权限控制
观察者模式
官方描述:对象间的一对多的依赖关系
白话文描述:在对象这间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象收到通知并自动更新
应用场景:发布订阅、事件通知、Zookeeper、事件监听
门面模式,外观模式
官方描述:对外提供一个统一的方法,来访问子系统中的一群接口
白话文描述:该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用
状态模式
官方描述:允许一个对象在其他对象内部状态改变时改变它的行为
白话文描述:状态模式与策略模式本质上没有很大的区别,主要根据行为决定,如果有共同抽象行为使用策略模式,没有共同行为使用状态模式
适配器模式
官方描述:将一个类的方法接口转换成客户希望的另外一个接口
应用场景:mybatis日志收集、提供接口转换
单例模式
官方描述:保证在一个jvm中只能有一个实例
反射机制可以破解单例
最靠谱的单例是枚举
本文参考蚂蚁课堂:http://www.mayikt.com/#
网友评论