中介者的作用是,当复杂功能应用指尖重复调用时,在中间添加一层中介者包装服务,对外提供简单、通用和易扩展的服务能力。
迭代器模式就像日常使用的Iterator方法遍历。虽然这种设计模式在实际业务开发中用得并不多,但却要使用JDK提供的list集合遍历。另外,增强的for循环语句虽然是循环输出数据,但并不是迭代器模式。迭代器模式的特点是实现Iterable接口,通过next方式获取集合元素,同时具备删除元素等操作功能;而增强的for循环语句是无法实现的。
就像我们以前用手柄按键玩游戏一样,这个游戏的控制方式——按键操作就像命令模式。命令模式虽然在编程开发中用的比较少,但是这种模式在日常生活种却经常用到,例如Ctrl+C和Ctrl+v。
责任链模式的核心是解决一组服务中的先后执行关系,就像出差借款需要审批,5000元以下直接找部门领导、分管领导、财务部门审批,5000元以上需要找更高一级的领导审批。
代理模式就是为了方便访问某些资源,使对象类更加易用,从而在操作上使用的代理服务。
MQ从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了MQ之后,消息发送上游只需要依赖MQ,不用依赖其他服务。
享元模式主要用于共享通用对象,减少内存的使用,提升系统的访问效率。较大的对象通常比较耗费内存,需要查询大量的接口或使用数据库资源,因此有必要统一抽离出来作为共享对象使用。
外观模式也叫门面模式,它主要解决的是降低调用方使用接口时的复杂逻辑组合。在调用方与实际的接口提供方之间添加了一个中间层,向包装逻辑提供API接口。有时外观模式也被用在中间件层,用服务中的通用性复杂逻辑包装中间件层,让使用方可以只关心业务,简化调用。
装饰器模式就像俄罗斯套娃,它的核心是在不改变原有类的基础上给类新增功能。对于不改变原有类,可能有的人会想到集成、AOP切面,虽然这些方式都可以实现,但是使用装饰器模式使另外一种更灵活的思路,能够避免继承导致的子类过多问题,也可以避免AOP带来的复杂性问题。
通过把相似对象或方法组合成一组可被调用的结构树对象的设计思路,成为组合模式。
5 / 12