Именно поэтому существуют шаблоны: Команда , Стратегия , Декоратор .
Я считаю, что шаблон команды - это то, что вы ищете.Сначала у вас есть базовый шаблон «команды»:
public interface IJob {
void ProcessJob();
}
Затем будут выполняться различные задания следующим образом:
public class MakePizza : IJob {
// implement the interface
public void ProcessJob() {
// make a pizza
}
}
Теперь у вас может быть JobFactory следующим образом:
public static class JobFactory {
public static IJob GetJob(string jobType) {
if(jobType.Equals("Pizza"){
return new MakePizza();
} else (jobType.Equals("Burger") {
return new MakeBurger();
}
// to add jobs, extend this if-else-if or convert to switch-case
}
}
Рабочий теперь может выглядеть следующим образом:
public class Worker {
private IJob job;
public Worker(string jt) {
job = JobFactory.GetJob(jt);
}
public void ProcessJob() {
job.ProcessJob();
}
}
Если у вас нет доступа к коду для внесения этих изменений, то другой шаблон, на который вы, возможно, захотите взглянуть, это адаптер .