Ho ricevuto una classe "WorkOrderTaskCreator" che crea oggetti del tipo Task e li aggiunge a una terza classe chiamata WorkOrder. Va così
class WorkOrderTaskCreator
{
ParentWorkOrder ParentWorkOrder { get; private set; }
public WorkOrderTaskCreator(ParentWorkOrder parentWorkOrder)
{
this.ParentWorkOrder = parentWorkOrder;
}
public void CreateTaskAndAssignItToWorkOrder(TaskCreator taskCreator)
{
var task = taskCreator.CreateTaskInOrder(ParentWorkOrder);
AddTaskToWorkOrder(task);
}
private void AddTaskToWorkOrder(W6Object task)
{
//DoSomeTuff
}
}
TaskCreator è un'interfaccia che espone solo il metodo CreateTaskInOrder, sono stato tentato di sostituire l'interfaccia con un delegato. Ma ho diverse classi che implementano una logica molto diversa all'interno di CreateTaskInOrder.
Passare un'interfaccia sul metodo è una buona idea o dovrei riconsiderare il mio design?