代码设计:设计模式:8个行为型设计模式

本文深入讲解了八大行为型设计模式,包括命令模式、状态模式、备忘录模式等,每种模式都详细介绍了其定义、类结构及应用场景,帮助读者理解如何根据不同行为选择合适的设计模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

不同的XXX,对应不同的行为

1.命令模式(1)

定义

不同的命令,对应不同的行为

从原有类中抽取出命令类

类结构
原有类

持有一个命令抽象类/接口

命令相关类
1.抽象类/接口

定义命令对应的行为的抽象方法,用于实现某个行为

2.具体的实现类

实现抽象方法,负责命令对应的具体的行为实现

类之间的关系

原有类依赖命令类

2.状态模式(2)

定义

不同的状态,对应不同的行为

一般状态是常量,不需要专门分离出一个状态类

类结构

原有类
持有一个状态变量,封装一组状态的常量

3.备忘录模式(3)

定义

在状态模式的基础上,抽象出备忘录类,用于记录特定状态

备忘录类用于存储状态变量:封装一个状态变量

4.策略模式(4)

定义

不同的策略,对应不同的行为

类结构
原有类

持有一个策略接口对象

策略相关类
接口

定义抽象方法,用于实现策略

具体的实现类

实现抽象方法,负责具体的策略实现

类之间的关系

原有类依赖策略接口

5.模板模式

定义

不同的模板实现类,对应不同的行为

类结构
模板类

封装模板方法和抽象方法

模板方法包含具体的实现代码,在其中调用抽象方法

具体的实现类

继承模板类,实现抽象方法,负责实现具体的行为

类之间的关系

具体的实现类继承模板类,实现抽象方法

6.访问者模式(6)

定义

不同的访问者,针对同一数据,对应不同的行为

同一访问者,针对不同数据,对应不同的行为

以策略模式为基础的设计模式

1.解释器模式(7)

解释作为一种策略,不同的解释器,实现不同的解释方法

2.迭代器模式(8)

迭代作为一种策略,不同的迭代器,实现不同的迭代方式

总结

策略模式和模板模式

相同点

都是为了实现动态绑定

不同点

策略模式使用的是依赖+接口的方式

模板模式使用的是继承

状态模式和备忘录模式

备忘录模式在状态模式的基础上,抽象出备忘录类,用于记录特定状态

状态模式和命令模式

状态模式,一般不会专门抽象出状态类,而是把状态变量封装在enum中,不同的状态对应的不同行为的实现代码在原类中

命令模式,抽象出命令类,把不同的命令对应的不同行为封装在具体的命令类中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值