Command模式的实践


Command模式的实践

主题

    文章将通过一个简单的 Shell  库来阐述 Command模式的一个实际应用。

如何使用 Shell 库

    在开始之前,我们先来看看如何使用这个 Shell 库。 解决方案结构如(图1-1)

 

图1-1 解决方案 

    从图上可以看出,该 Shell 库非常的简单。其中 ICommand 接口定义了只定义了一个 Execute 方法,该方法的签名见代码清单 1-1.

代码清单 1-1 

    /// <summary>执行命令并返回命令执行结果</summary>
    
/// <param name="args">需要执行的命令</param>
    
/// <param name="executeMessage">命令执行结果</param>
    void Execute(string[] args, ref string executeMessage);

    Command 项目中包含了实现了 ICommand 接口的具体类。 见代码清单 1-2

代码清单 1-2 

    public class AddUserCommand : ICommand
    {
        
public void Execute(string[] args, ref string executeMessage)
        {
            
if (args.Length != 3 || Share.IsHasAnySpace(args))
            {
                executeMessage 
= "AddUser 命令参数不正确!格式如下:AddUser userName passWord";
                
return;
            }
            
string userName = args[1];
            
string passWord = args[2];
            BllFactory.BllFactory.GetInstance().User.AddUser(userName, passWord);
            executeMessage 
= string.Format("添加用户 {0} 成功!", userName);
        }
    }

    该具体类由客户负责创建。在代码清单 1-2 中,AddUserCommand 类实现了 ICommand 接口。具体的 Execute  方法的实现是调用了BLL层的 AddUser 方法去完成了添加用户的操作。


原文地址:https://www.cnblogs.com/bruceleeliya/p/1505019.html