美文网首页
设计模式之行为型(5)

设计模式之行为型(5)

作者: 宏势 | 来源:发表于2023-09-11 20:00 被阅读0次

    不常用行为类模式:1.访问者模式 2.解释器模式 3.命令模式 4.备忘录模式 5.中介模式

    一、访问者模式

    1.一句话描述

    当要为对象的组合增加新的能力,可以引入访问者,组合的执行算法可以随访问者改变而改变

    2.类图

    image.png

    3.总结

    • 访问者模式为组合结构加入新的操作,而无需修改结构本身
    • 打破组合结构封装,结构变更,所有访问者都得变更(对组合结构的变更困难)

    访问者模式违反了迪米特原则、依赖倒置原则

    二、解释器模式

    1.一句话描述

    • 用来解释执行语法句子

    2.类图

    image.png

    3.实战案例

    • 主要用于表达式或者语法解析执行

    4.总结

    • 如果语法相对比较复杂,需要用编译器
    • 该模式平时比较少用

    三、命令模式

    1.一句话描述

    • 将一个请求封装成一个对象,解耦f请求者和执行请求者,让它们通过命令对象通讯

    2.类图

    image.png

    3.实战案例

    • 餐厅点餐服务员和大厨之间通信可以用命令模式

    4.总结

    • 1.命令模式将调用者和执行者分开,降低耦合度
    • 3.命令模式可以扩展支持命令的撤销恢复,请求命令排队、组合命令等
    • 3.如果命令很多,不管命令多简单,需要创建大量的命令类

    四、备忘录模式

    1.一句话描述

    • 能让对象返回到之前的状态

    2.类图

    image.png

    3.实战案例

    • 文本编辑器撤销功能
    • 游戏中的存档功能

    4.总结

    • 1.备忘录类,维护一个目标对象的状态
    • 2.备忘录管理类,维护一个备忘录对象的集合,提供添加,删除和获取功能 ,但不能对备忘录里面内容进行修改

    五、中介者模式

    1.一句话描述

    中介模式用来集中相关对象之间的复杂的沟通和控制方式,也叫调停模式

    2.类图

    image.png

    3.实战案例

    • 生活中的房产中介就是典型的中介者模式
    • MVC 框架中的控制器(controller)就是模式(model)和视图(view)的中介者
    • 电脑cpu,内存,显卡、硬盘 都经过电脑主板进行交互,电脑主板相当是中介者,也是一种中介者模式

    4.总结

    • 引入中介者,将相关对象彼此解耦,降低耦合
    • 引入中介者,将控制逻辑集中,简化系统

    由于中介者承担了大部分逻辑,有可能导致中介者类变得复杂,难以维护

    门面模式VS中介者模式,门面是为复杂系统提供一个统一的访问界面,他定义的是一个高层接口,无需知道复杂系统的细节, 而中介者模式是提供一个中介对象来封装一系列对象的交互行为,让各对象之间耦合松散

    相关文章

      网友评论

          本文标题:设计模式之行为型(5)

          本文链接:https://www.haomeiwen.com/subject/dnmnudtx.html