如何命名此“WorkDistribtor”?这看起来像一个模式,但我不能说它是什么。
interface IWorker
{
void Do();
}
class WorkerOne: IWorker
{
public void Do() {...}
}
class WorkerTwo: IWorker
{
public void Do() {...}
}
// ...
我没有使用一个特定的工作人员来做Do()工作,而是引入一个间接工作来决定哪个实际的工人应该完成这项工作。这个间接实现了与Worker相同的接口,但实际上并没有完成工作,而是委托它。
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();
}
}
}
答案 0 :(得分:1)
看起来很可能像Strategy
模式(也称为策略模式):
http://en.wikipedia.org/wiki/Strategy_pattern
您实际上允许每个特定实现根据上下文定义不同的行为,并且可以使用您的选择器类(定义实际上下文的类)在运行时选择算法。
答案 1 :(得分:0)
这通常被称为接口模式:P
答案 2 :(得分:0)
将“间接”模式配音怎么样? ; - )
答案 3 :(得分:0)
我知道它是抽象工厂模式