栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

设计模式总结(三):行为型模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设计模式总结(三):行为型模式

    最后介绍一下行为型模式,此类模式占了23种常见设计模式里的大头。此类模式主要用于解决类与对象之间的交互问题,其包括以下11种模式:观察者模式、模板模式、策略模式、职责链模式、迭代器模式、状态模式、访问者模式、备忘录模式、命令模式、解释器模式与中介模式。下面介绍下每个设计模式是用于解决什么问题的,在什么场景下可以考虑使用。

  1. 观察者模式:此模式用于解耦观察者和被观察者。当一个对象状态改变时,通知依赖于它的对象,而不是让依赖它的对象来一直查询它的状态,避免观察者对象占用CPU资源。此模式可以使用同步阻塞或异步非阻塞的方式实现。
  2. 模板模式:当代码逻辑可以复用时,可以使用模板模式。此模式就是在类方法中设计好代码逻辑框架,这样在其子类中就可以对框架进行复用和扩展,在不改变总体架构的情况下对其中的扩展点进行功能定制。许多的类库就使用了此设计模式。
  3. 策略模式:当一个类的行为需要在运行时改变,就可以考虑使用策略模式。此模式定义一个接口,并定义了一组实现这个接口的类,每个类提供的策略不同,提供给客户端代码选择。此模式可以结合工厂模式一起使用。
  4. 职责链模式:当要实现像过滤器、拦截器之类的功能时,可以使用职责链模式。此模式把处理器对象串成一个链,当一个请求到来时,就依次交给这个链上的对象进行处理。若某个对象可以处理完这个请求,便可直接返回,无需继续传递。此模式可让开发者在不改变框架的情况下方便地扩展功能。
  5. 迭代器模式:当要遍历集合对象时,可以使用迭代器模式。相信很多用过面向对象语言的伙伴都使用过迭代器,它可以解耦集合对象的数据结构,用通用的方法遍历集合中的对象,避免编写复杂的遍历算法。
  6. 状态模式:当要实现状态机时,可以使用状态模式,一般用于每个处理阶段都有明显状态的程序。此模式由状态、事件、动作组成,代码运行过程中会处于某个状态中,当有事件发生时状态会发生转变,并可能产生相应的动作。
  7. 访问者模式:当一个操作需要应用到不同类型时,可以使用访问者模式。此模式通过函数重载来实现,为不同类型参数定制相应的代码实现。此模式可以为不同类型静态绑定相应的操作,避免冗杂的if-else语句。
  8. 备忘录模式:当需要保存副本用于备份时,可以使用备忘录模式。此模式通过创建专门的类来提供对主类的信息进行保存和恢复的功能。
  9. 命令模式:当需要异步、延迟或排队执行命令时,可以使用命令模式。此模式把函数封装成对象,提供给其他函数使用.
  10. 解释器模式:当需要对固定文法进行解释时,可以使用解释器模式。此模式体现了分层处理的设计思想,通过一个个小类分层地对输入的文法进行解释,从而避免一个大而全的解释类,以降低代码的复杂度。
  11. 中介模式:要解决不同对象之间多对多的复杂交互关系,可以使用中介模式。此模式通过增加一个中介对象,让其他对象都与其交互,然后中介对象统一调度相应的请求,这样就可以让多对多的关系变为多对一的关系,从而降低代码复杂度。

    到此23种常见的设计模式介绍完毕。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/489191.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号