命令模式:
把需求的请求者和需求的执行者从对象中解耦出来,我个人的理解是把请求者和执行者分离,执行者封装复杂的执行过程,通过请求者的指示找到不同的执行者来处理或者执行不同的过程。
以下以命令者 命令传递者 命令执行者为例,解释妈妈喊起床的过程:
1
/// <summary>
2
/// 命令者
3
/// </summary>
4
public interface ICommand
5
{
6
void SetCommand(IOrder order);
7
void Press();
8
}
9
10
/// <summary>
11
/// 命令接受者
12
/// </summary>
13
public interface IOrder
14
{
15
void AddOrder(IAction action);
16
void ShowAction();
17
}
18
19
/// <summary>
20
/// 命令内容处理者
21
/// </summary>
22
public interface IAction
23
{
24
void Action();
25
}
26
27
public class Commmander : ICommand
28
{
29
private IOrder order;
30
31
ICommand Members
48
}
49
50
public class Order : IOrder
51
{
52
private List<IAction> actions=new List<IAction>();
53
54
IOrder Members
71
}
72
73
命令操作
124
125
class Program
126
{
127
static void Main(string[] args)
128
{
129
ICommand cmd = new Commmander();
130
//当然我在这里写的比较简单
131
//复杂的Order定制可以用到工厂模式
132
IOrder order = new Order();
133
134
order.AddOrder(new Up());
135
order.AddOrder(new Toothbrushing());
136
order.AddOrder(new Wash());
137
order.AddOrder(new Out());
138
cmd.SetCommand(order);
139
cmd.Press();
140
141
Console.Read();
142
}
143
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

48

49

50

51

52

53

54

71

72

73

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

标签:
设计模式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端