常用的设计模式简介

目录

策略模式

代理模式

发布订阅模式

工厂模式

门面模式

模板方法

责任链模式​

中介者模式

装饰模式


一句话简单介绍常用的设计模式,和实际中的应用场景。

策略模式

解决if else多重判定问题,可以通过路由key和结合工厂模式获取上下文中的具体策略。

常用的设计模式简介_第1张图片

代理模式

世界上没有什么问题是增加一层代理解决不了的。代理模式功能强大,项目之中随处可见。对我们的真实对象拦截增强-aop,隐藏实际代码的复杂性-rpc。

常用的设计模式简介_第2张图片

发布订阅模式

发布订阅模式主要是做通知用,订阅我们的主题,主题消息变更后通知其订阅节点,做后续的事件处理。如zookeeper中节点监听机制。

常用的设计模式简介_第3张图片

工厂模式

工厂模式意在对复杂对象获取的封装,通过对应的工厂获取对应的工厂对象,通常结合其他模式一起使用。

常用的设计模式简介_第4张图片

门面模式

门面模式主要自顶向下地隐藏代码逻辑的复杂性,各个模块各司其职完成自己业务逻辑,比如下单购买商品,有获取商品库存service,订单service,支付service等一起完成下单的业务逻辑。

常用的设计模式简介_第5张图片

模板方法

模板方法作用主要是流程中公共可复用代码的抽离,将重复代码放到抽象模板方法中,将差异化的代码方法具体子类中实现。像下面的对阿里和微信支付回调解析,解析回调报文不同放到各自实现类中,日志记录和订单状态更新相同放到抽象方法中去实现。模板方法通常结合策略模式和工厂方法模式来获取具体模板实例对象。

责任链模式常用的设计模式简介_第6张图片

责任链模式将不同职责处理类连接成一条链,业务在这条链上流转。就像我们的业务逻辑是水,责任链就是不同颗粒大小的滤网。下面责任链在内网网关安全校验的应用,通常也会和工厂模式结合获取责任链对象。

常用的设计模式简介_第7张图片

中介者模式

中介者模式比较低调,主要用于解耦各个节点通信,客户端通过中介者来统一和其他通讯节点交流。如果没有中介者直连,一个客户端要和n个通讯节点连接,m个客户端就是mn个。有了中介者就只需要中介者和n个通讯节点连接。减少了大量连接,而这些连接是宝贵的,比如数据库连接。

常用的设计模式简介_第8张图片

装饰模式

装饰模式主要是在不改变原有代码的基础上对我们的功能增强。为啥不直接改我们方法呢?因为oop的开闭原则,和有时也没法直接改。装饰模式可以实现和责任链模式一样的效果,只是装饰模式是向上的调用上一层具体装饰。通常也和工厂模式配合使用。

常用的设计模式简介_第9张图片

你可能感兴趣的:(设计模式,java)