【发布时间】:2011-10-03 10:50:58
【问题描述】:
我一直在查看一些代码,发现我的一位同事正在使用“标记类”来控制程序逻辑(请参见下面的人为示例)。它似乎工作得很好,代码读起来也很好,但是它有一些味道......
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 {}
}
实现相同效果的更好方法是什么?枚举?属性?
【问题讨论】: