He estado revisando algún código que un colega mío está usando 'clases de marcador' para controlar la lógica del programa (consulte el ejemplo artificial a continuación). Parece que funciona bien, y el código lee muy bien, pero hay algo acerca de lo que huele ...Uso de clases de marcador para controlar el flujo lógico
namespace ConsoleApplication4983
{
public class MyClass
{
static void Main()
{
var c = new MyClass();
c.DoSomething(new Sequential());
c.DoSomething(new Random());
}
public void DoSomething(ProcessingMethod method)
{
if (method is Sequential)
{
// do something sequential
}
else if (method is Random)
{
// do something random
}
}
}
public class ProcessingMethod {}
public class Sequential : ProcessingMethod {}
public class Random : ProcessingMethod {}
}
lo que sería una mejor forma de lograr el mismo efecto? ¿Enumerados? Atributos?
+1 Este es un buen enfoque. –