Design patterns 这是一种模式吗?如果是,它的名称是什么?

Design patterns 这是一种模式吗?如果是,它的名称是什么?,design-patterns,Design Patterns,我如何命名这个“WorkDistributor”?这看起来像一个模式,但我不能说它是什么 interface IWorker { void Do(); } class WorkerOne: IWorker { public void Do() {...} } class WorkerTwo: IWorker { public void Do() {...} } // ... 我没有使用一个特定的工作者来做这个工作,而是引入了一个间接方法来决定哪个实际工作者应该

我如何命名这个“WorkDistributor”?这看起来像一个模式,但我不能说它是什么

interface IWorker
{
    void Do();
}

class WorkerOne: IWorker 
{
    public void Do() {...}
}

class WorkerTwo: IWorker 
{
    public void Do() {...}
}

// ...
我没有使用一个特定的工作者来做这个工作,而是引入了一个间接方法来决定哪个实际工作者应该做这个工作。此间接寻址实现与工作者相同的接口,但实际上不执行工作,而是将其委派

class WorkDistributor: IWorker
{
    private _workerOne = new WorkerOne();
    private _workerTwo = new WorkerTwo();
    //...

    //delegate work to the different workers
    //depending on some conditions
    public void Do()
    {
      if (whateverCondition)
      {
          _workerOne.Do();
      }

      if (anotherCondition)
      {
          _workerTwo.Do();
      }
    }

}

这被普遍称为接口模式:p

这被普遍称为接口模式:p

把它称为“间接”模式怎么样?;-)

把它称为“间接”模式怎么样?;-)

它看起来最像是
策略
模式(也称为策略模式):


实际上,您允许每个特定的实现根据上下文定义不同的行为,并且可以在运行时使用选择器类(定义实际上下文的类)选择算法。

它很可能类似于
策略模式(也称为策略模式):


实际上,您允许每个特定的实现根据上下文定义不同的行为,并且可以在运行时使用选择器类(定义实际上下文的类)选择算法。

我将其称为抽象工厂模式


我知道它是抽象工厂模式


WorkDistributor在运行时决定使用什么策略(worker),但它通过实现与策略本身相同的接口(提供Do()方法),为外部世界(客户端)隐藏了这一事实。因此,客户可以使用具体的策略(即特定的员工)或WorkDistrubutor。这可以通过依赖项注入很好地设置。这仍然是策略模式吗?WorkDistributor在运行时决定使用什么策略(worker),但它通过实现与策略本身相同的接口(提供Do()方法),为外部世界(客户端)隐藏了这一事实。因此,客户可以使用具体的策略(即特定的员工)或WorkDistrubutor。这可以通过依赖项注入很好地设置。这仍然是战略模式吗?