【发布时间】:2010-09-09 12:24:46
【问题描述】:
首先让我说我不提倡这种方法,但我最近看到了它,我想知道是否有一个名称可以用来指出有罪的一方。就这样吧。
现在你有了一个方法,你想返回一个值。你也想要返回一个错误代码。当然,异常是一个更好的选择,但无论出于何种原因,您都需要一个错误代码。记住,我在这里扮演魔鬼的拥护者。所以你创建了一个泛型类,像这样:
class FunctionResult<T>
{
public T payload;
public int result;
}
然后像这样声明你的函数:
FunctionResult<string> MyFunction()
{
FunctionResult<string> result;
//...
return result;
}
此模式的一个变体是使用枚举作为错误代码而不是字符串。现在,回到我的问题:有这个名字吗?如果有,它是什么名字?
【问题讨论】:
-
“不是白痴的人看到这个会用锤子打断我的手指”的模式。但这几乎适用于所有反模式。
-
如果这是一种反模式,那么对于不直接支持异常的语言有什么建议(我在考虑 VB/VBA)。
-
如果他们不支持异常,他们可能也不支持模板/泛型。
-
乔尔——是的,没想到这一点。 :-) 我想我倾向于认为模式(和反模式)与语言无关,但你是对的;鉴于上下文,我可以看到这看起来像是一种反模式。
标签: design-patterns anti-patterns