0
点赞
收藏
分享

微信扫一扫

【大话设计模式】 深入解析行为型设计模式


目录

一、前言

二、行为型模式

三、各模式详解

1、访问者模式(Visitor Pattern)

2、策略模式(Strategy Pattern)

3、观察者模式(Observer Pattern)

4、备忘录模式(Memento Pattern)

5、责任链模式(Chain of Responsibility Pattern)

6、命令模式(Command Pattern)

7、状态模式(State Pattern)

8、模板方法模式(Template Method Pattern)

 9、解释器模式(Interpreter Pattern)

 10、中介者模式(Mediator Pattern)

四、总结

一、前言

        大话设计模式主要分为三部分,第一部分是创建型模式,第二部分是结构型模式,第三部分是行为型模式。至于为什么要分为这三部分,我的理解是创建型是用于创建对象的而结构型是发生在类与类之间的关系是比较宏观的,比如说组合或者交互。行为型是一个微观的关系主要体现在对象与对象之间和方法与方法之间。接下来说一说行为型模式。

二、行为型模式

        行为型模式用于描述程序在运行时复杂的流程控制,即描述对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,是一种微观关系的体现。行为型模式包括:第一组(观察者模式、模板方法、命令模式、状态模式、职责链模式)第二组(解释器模式、中介者模式、访问者模式、策略模式、备忘录模式、迭代器模式)

三、各模式详解

1、访问者模式(Visitor Pattern)

  • 好处:共享细粒度的对象,减少内存使用,提高性能。通过共享,可以在有限的内存中支持大量的对象。
  • 使用场景:当需要创建大量相似的对象,并且这些对象可以共享部分状态时,可以使用享元模式。例如,字符缓存池、线程池等。

【大话设计模式】 深入解析行为型设计模式_策略模式

2、策略模式(Strategy Pattern)

策略模式是行为型模式中的佼佼者,通过将一系列算法封装成独立的策略类,使得它们可以互相替换,实现了算法与客户端的解耦。这种灵活性使得系统可以根据需要选择合适的策略来完成任务。

【大话设计模式】 深入解析行为型设计模式_命令模式_02

3、观察者模式(Observer Pattern)

观察者模式建立了一种对象之间的一对多关系,当一个对象状态变化时,它的所有依赖对象都会收到通知并自动更新。这种松耦合的方式使得主题和观察者可以独立地变化。

【大话设计模式】 深入解析行为型设计模式_行为型模式_03

4、备忘录模式(Memento Pattern)

  • 好处:备忘录模式可以在不破坏封装性的前提下,捕获和保存一个对象的内部状态,并提供一种恢复到之前状态的机制。它可以有效地实现对象的撤销、恢复和历史记录功能。
  • 使用场景:当需要实现对象的撤销、恢复和历史记录功能时,可以使用备忘录模式。例如,文本编辑器的撤销和恢复功能、游戏中的进度保存和恢复功能等场景。

【大话设计模式】 深入解析行为型设计模式_命令模式_04

5、责任链模式(Chain of Responsibility Pattern)

 责任链模式通过将请求传递给一系列的处理者,直到找到合适的处理者为止。它将发送者与接收者解耦,使得多个对象都有机会处理请求,提高了系统的灵活性。

【大话设计模式】 深入解析行为型设计模式_命令模式_05

6、命令模式(Command Pattern)

命令模式将请求封装成对象,使得我们可以参数化对象,并用不同的请求来参数化客户端。这种方式允许我们在不同的时间、队列甚至日志请求,以及支持撤销操作。

【大话设计模式】 深入解析行为型设计模式_备忘录模式_06

7、状态模式(State Pattern)

状态模式允许对象在其内部状态发生改变时,改变其行为。它将对象的状态封装成不同的类,使得状态的变化可以独立地变化而不影响客户端。

【大话设计模式】 深入解析行为型设计模式_备忘录模式_07

8、模板方法模式(Template Method Pattern)

  • 好处:定义了一个算法的骨架,将一些步骤的具体实现延迟到子类中。提供了一种固定的算法结构,同时允许子类灵活地实现自己的具体步骤。
  • 使用场景:当有一个算法的整体结构是固定的,但其中某些步骤的具体实现可能有所变化时,可以使用模板方法模式。例如,游戏中的角色行为、数据库访问操作等场景。

【大话设计模式】 深入解析行为型设计模式_命令模式_08

 9、解释器模式(Interpreter Pattern)

  • 好处:将一个复杂的语言或规则表达式分解为一系列简单的解释器,使得解释器的添加和修改变得灵活和可扩展。提供了一种简洁的方式来解释和处理特定的语法规则。
  • 使用场景:当需要解析和处理一种特定的语言或规则,且需要灵活地添加和修改解释器时,可以使用解释器模式。例如,编译器的语法分析、正则表达式的解析等场景。

【大话设计模式】 深入解析行为型设计模式_策略模式_09

 10、中介者模式(Mediator Pattern)

  • 好处:共享细粒度的对象,减少内存使用,提高性能。通过共享,可以在有限的内存中支持大量的对象。
  • 使用场景:当需要创建大量相似的对象,并且这些对象可以共享部分状态时,可以使用享元模式。例如,字符缓存池、线程池等

【大话设计模式】 深入解析行为型设计模式_使用场景_10

四、总结

         这些行为型设计模式都提供了一种灵活、可复用和可扩展的方式来组织和管理对象之间的交互和通信。正确地选择和使用适合的设计模式可以提高代码的可维护性、可读性和可测试性,并帮助我们构建更好的软件系统。

举报

相关推荐

0 条评论