zoukankan      html  css  js  c++  java
  • CSharp设计模式读书笔记(15):命令模式(学习难度:★★★☆☆,使用频率:★★★★☆)

    命令模式(Command Pattern):将一个请求封装为一个对象,从而让我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。

    模式角色与结构:(可以有多个ConcreteCommand,分别保存多个Receiver的引用)

    示例代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace CSharp.DesignPattern.CommandPattern
    {
        class Program
        {
            static void Main(string[] args)
            {
                Command command = new ConcreteCommand();
                Invoker invoder = new Invoker(command); // 功能键
    
                invoder.Call();
    
                Console.ReadLine();
            }
        }
    
        // 调用者
        class Invoker
        {
            private Command command;
    
            // 构造注入
            public Invoker(Command command)
            {
                this.command = command;
            }
    
            public void Call()
            {
                command.Execute();
            }
        }
    
        // 抽象命令
        abstract class Command
        {
            public abstract void Execute();
        }
    
        // 具体命令类
        class ConcreteCommand : Command
        {
            private Receiver receiver; // 维持对请求接收者的引用
    
            public ConcreteCommand()
            {
                receiver = new Receiver();
            }
    
            public override void Execute()
            {
                receiver.Action();
            }
        }
    
        // 接收者类
        class Receiver
        {
            public void Action()
            {
                Console.WriteLine("Receiver Action...");
            }
        }
    }
  • 相关阅读:
    java实现亲密数
    java实现亲密数
    java实现亲密数
    java实现亲密数
    java实现坐标
    java实现坐标
    java实现坐标
    java实现坐标
    java实现坐标
    spring中注解注入 context:component-scan 的使用说明
  • 原文地址:https://www.cnblogs.com/thlzhf/p/3993747.html
Copyright © 2011-2022 走看看