C# 设计模式(行为型模式):命令模式(专注于撤销重做)

C# 设计模式(行为型模式):命令模式 (Command Pattern)


一、什么是命令模式?

命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成一个对象,从而使你可以用不同的请求、队列或者日志来参数化对象。此模式使得请求的发送者和接受者完全解耦。

在命令模式中,一个命令就是一个独立的对象,包含了执行请求所需的所有信息。这种模式非常适合需要撤销/重做操作或事务管理的场景。


二、模式结构
  1. Command(抽象命令类):声明执行操作的接口。
  2. ConcreteCommand(具体命令类):实现命令接口,绑定一个接收者对象,调用接收者的相应操作。
  3. Invoker(调用者):调用命令对象执行具体请求。
  4. Receiver(接收者):执行命令请求的具体对象。
  5. Client(客户端):创建命令对象并设置接收者和调用者。

三、适用场景
  1. 撤销/重做操作:如文本编辑器的撤销和重做功能。
  2. 任务队列:将请求放入队列以便稍后执行。
  3. 事务系统:需要记录日志并支持操作回滚。

四、C# 实现案例
1. 场景描述

模拟一个智能家居系统,支持打开和关闭灯的功能,同时能够支持撤销上一个操作。

2. 实现代码
using System;
using System.Collections.Generic;

namespace CommandPatternExample
{
   
   
    // 命令接口
    public interface ICommand
    {
   
   
        void Execute();
        void Undo();
    }

    // 具体命令:打开灯
    public class LightOnCommand : ICommand
    {
   
   
        private Light _light;

        public LightOnCommand(Light light)
        {
   
   
            _light = light;
        }

        public void Exec
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值