相关疑难解决方法(0)

使用命令模式时的依赖注入

我第一次使用命令模式.我有点不确定我应该如何处理依赖项.

在下面的代码中,我们调度一个CreateProductCommand然后排队等待稍后执行的代码.该命令封装了执行所需的所有信息.

在这种情况下,我们可能需要访问某种类型的数据存储来创建产品.我的问题是,如何将此依赖项注入命令以便它可以执行?

public interface ICommand {
    void Execute();
}

public class CreateProductCommand : ICommand {
    private string productName;

    public CreateProductCommand(string productName) {
        this.ProductName = productName;
    }

    public void Execute() {
        // save product
    }
}

public class Dispatcher {
    public void Dispatch<TCommand>(TCommand command) where TCommand : ICommand {
        // save command to queue
    }
}

public class CommandInvoker {
    public void Run() {

        // get queue

        while (true) {
            var command = queue.Dequeue<ICommand>();
            command.Execute();
            Thread.Sleep(10000);
        }
    } …
Run Code Online (Sandbox Code Playgroud)

.net dependency-injection command-pattern

13
推荐指数
1
解决办法
3865
查看次数